<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bugra Keskin | IT Pro ~Microsoft 365</title>
	<atom:link href="http://www.bugrakeskin.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bugrakeskin.com/</link>
	<description>Exchange Server,Exchange Online,Microsoft 365, Entra, EntraID, Puview, Sharepoint,Exchange Hybrid</description>
	<lastBuildDate>Fri, 15 May 2026 12:12:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.bugrakeskin.com/wp-content/uploads/2020/05/cropped-top-banner-32x32.png</url>
	<title>Bugra Keskin | IT Pro ~Microsoft 365</title>
	<link>https://www.bugrakeskin.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Exchange 451 Timeout Waiting for Client Input</title>
		<link>https://www.bugrakeskin.com/exchange-451-timeout-waiting-for-client-input/</link>
					<comments>https://www.bugrakeskin.com/exchange-451-timeout-waiting-for-client-input/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Wed, 06 May 2026 06:58:08 +0000</pubDate>
				<category><![CDATA[Exchange]]></category>
		<category><![CDATA[4.7.0 Timeout waiting for client input]]></category>
		<category><![CDATA[451 4.7.0 Timeout waiting for client input]]></category>
		<category><![CDATA[lost connection with 127.0.0.1 while sending end of data]]></category>
		<category><![CDATA[Remote SocketError]]></category>
		<category><![CDATA[Remote(SocketError)]]></category>
		<guid isPermaLink="false">https://www.bugrakeskin.com/?p=557</guid>

					<description><![CDATA[<p>The Symptom Users reported that some emails were not being delivered to on-premises Exchange mailboxes. The security team initially observed messages stuck in the antispam gateway&#8217;s deferred queue with errors: At first glance, this looked like a possible Exchange Receive Connector or SMTP delivery issue? First Important Observation The 127.0.0.1 address was misleading. Since 127.0.0.1 [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/exchange-451-timeout-waiting-for-client-input/">Exchange 451 Timeout Waiting for Client Input</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">The Symptom</h3>



<p class="wp-block-paragraph">Users reported that some emails were not being delivered to on-premises Exchange mailboxes.</p>



<p class="wp-block-paragraph">The security team initially observed messages stuck in the antispam gateway&#8217;s deferred queue with errors:</p>



<figure class="wp-block-image size-large"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/05/image.png"><img fetchpriority="high" decoding="async" width="1030" height="178" src="https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-1030x178.png" alt="" class="wp-image-559" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-1030x178.png 1030w, https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-300x52.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-768x133.png 768w, https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-1536x266.png 1536w, https://www.bugrakeskin.com/wp-content/uploads/2026/05/image.png 1917w" sizes="(max-width: 1030px) 100vw, 1030px" /></a></figure>



<pre class="wp-block-code"><code><strong>lost connection with 127.0.0.1 while sending end of data</strong></code></pre>



<p class="wp-block-paragraph">At first glance, this looked like a possible Exchange Receive Connector or SMTP delivery issue?</p>



<h5 class="wp-block-heading">First Important Observation</h5>



<p class="wp-block-paragraph">The 127.0.0.1 address was misleading.</p>



<p class="wp-block-paragraph">Since 127.0.0.1 is the loopback address, this error did not directly prove that Exchange was rejecting the message. It suggested that the antispam gateway might have been having an internal processing or local relay issue.</p>



<h5 class="wp-block-heading">SMTP Receive Protocol Logs</h5>



<p class="wp-block-paragraph">When i parse the SMTP Receive logs using Log Parser, I found repeated errors from the antispam relay IPs on the inbound receive connector:</p>



<figure class="wp-block-image size-large"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-3.png"><img decoding="async" width="1030" height="265" src="https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-3-1030x265.png" alt="" class="wp-image-562" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-3-1030x265.png 1030w, https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-3-300x77.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-3-768x198.png 768w, https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-3-1536x396.png 1536w, https://www.bugrakeskin.com/wp-content/uploads/2026/05/image-3.png 1922w" sizes="(max-width: 1030px) 100vw, 1030px" /></a></figure>



<pre class="wp-block-code"><code><strong>451 4.7.0 Timeout waiting for client input</strong></code></pre>



<p class="wp-block-paragraph">I also observed entries such as:</p>



<p class="wp-block-paragraph">`Remote(SocketError)`</p>



<p class="wp-block-paragraph">This changed the direction of the investigation.</p>



<p class="wp-block-paragraph">These errors did not look like:<br>&#8211; recipient rejection<br>&#8211; message size limit<br>&#8211; subject/header limit<br>&#8211; authentication failure<br>&#8211; receive connector permission issue</p>



<p class="wp-block-paragraph">Instead, Exchange accepted the SMTP connection but the SMTP conversation wasn&#8217;t completed cleanly.</p>



<h5 class="wp-block-heading">What the Error Means</h5>



<p class="wp-block-paragraph"><strong>&#8220;451 4.7.0 Timeout waiting for client input</strong>&#8221; means Exchange was waiting for the remote SMTP client to continue sending data or commands, but the client did not continue in time.</p>



<p class="wp-block-paragraph">&#8220;Remote(SocketError)&#8221; usually means the remote side or the network path closed/reset the socket unexpectedly.</p>



<p class="wp-block-paragraph">In other words, Exchange was not actively rejecting the email. The SMTP session was being interrupted.</p>



<h5 class="wp-block-heading">Root Cause</h5>



<p class="wp-block-paragraph">After correlating the timestamps with the network team, the firewall logs confirmed that IPS was dropping the SMTP connections between the antispam gateway and the Exchange servers.</p>



<p class="wp-block-paragraph">Once the IPS behavior was corrected, the deferred messages started flowing normally again.</p>



<p class="wp-block-paragraph">Errors such as:</p>



<p class="wp-block-paragraph"><strong>&#8220;451 4.7.0 Timeout waiting for client input&#8221;</strong></p>



<p class="wp-block-paragraph">and:</p>



<p class="wp-block-paragraph"><strong>&#8220;Remote(SocketError)&#8221;</strong></p>



<p class="wp-block-paragraph">should make you check the SMTP client and the network/security path, especially firewall, IPS, TLS inspection, and antispam relay behavior.</p>



<p class="wp-block-paragraph">In this case, Exchange was only reporting the symptom. The root cause was the IPS interrupting SMTP sessions between the antispam gateway and Exchange.</p>



<p class="wp-block-paragraph">Log Parser Query to parse Exchange Receive Connector</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#ffffff;font-style:italic;color:#24292eff"><span style="border-bottom:1px solid rgba(16, 41, 67, 0.2)">SQL</span></span><span role="button" tabindex="0" style="color:#24292eff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>SELECT
    &#91;connector-id&#93;,
    EXTRACT_TOKEN(&#91;remote-endpoint&#93;, 0, ':') AS SenderIP,
    event,
    data,
    context,
    COUNT(*) AS Hits
FROM
    '&#91;LOGFILEPATH&#93;'
WHERE
    (
        data LIKE '4__ %'
        OR data LIKE '5__ %'
        OR data LIKE '%Timeout waiting for client input%'
        OR context LIKE '%SocketError%'
        OR context LIKE '%disconnect%'
        OR context LIKE '%reset%'
        OR context LIKE '%timeout%'
    )
GROUP BY
    &#91;connector-id&#93;,
    SenderIP,
    event,
    data,
    context
ORDER BY
    Hits DESC</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki min-light" style="background-color: #ffffff" tabindex="0"><code><span class="line"><span style="color: #D32F2F">SELECT</span></span>
<span class="line"><span style="color: #24292EFF">    &#91;connector-id&#93;,</span></span>
<span class="line"><span style="color: #24292EFF">    EXTRACT_TOKEN(&#91;remote-endpoint&#93;, </span><span style="color: #1976D2">0</span><span style="color: #24292EFF">, </span><span style="color: #22863A">&#39;:&#39;</span><span style="color: #24292EFF">) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> SenderIP,</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">event</span><span style="color: #24292EFF">,</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">data</span><span style="color: #24292EFF">,</span></span>
<span class="line"><span style="color: #24292EFF">    context,</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #6F42C1">COUNT</span><span style="color: #24292EFF">(</span><span style="color: #D32F2F">*</span><span style="color: #24292EFF">) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> Hits</span></span>
<span class="line"><span style="color: #D32F2F">FROM</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #22863A">&#39;&#91;LOGFILEPATH&#93;&#39;</span></span>
<span class="line"><span style="color: #D32F2F">WHERE</span></span>
<span class="line"><span style="color: #24292EFF">    (</span></span>
<span class="line"><span style="color: #24292EFF">        </span><span style="color: #D32F2F">data</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;4__ %&#39;</span></span>
<span class="line"><span style="color: #24292EFF">        </span><span style="color: #D32F2F">OR</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">data</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;5__ %&#39;</span></span>
<span class="line"><span style="color: #24292EFF">        </span><span style="color: #D32F2F">OR</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">data</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%Timeout waiting for client input%&#39;</span></span>
<span class="line"><span style="color: #24292EFF">        </span><span style="color: #D32F2F">OR</span><span style="color: #24292EFF"> context </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%SocketError%&#39;</span></span>
<span class="line"><span style="color: #24292EFF">        </span><span style="color: #D32F2F">OR</span><span style="color: #24292EFF"> context </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%disconnect%&#39;</span></span>
<span class="line"><span style="color: #24292EFF">        </span><span style="color: #D32F2F">OR</span><span style="color: #24292EFF"> context </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%reset%&#39;</span></span>
<span class="line"><span style="color: #24292EFF">        </span><span style="color: #D32F2F">OR</span><span style="color: #24292EFF"> context </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%timeout%&#39;</span></span>
<span class="line"><span style="color: #24292EFF">    )</span></span>
<span class="line"><span style="color: #D32F2F">GROUP BY</span></span>
<span class="line"><span style="color: #24292EFF">    &#91;connector-id&#93;,</span></span>
<span class="line"><span style="color: #24292EFF">    SenderIP,</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">event</span><span style="color: #24292EFF">,</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">data</span><span style="color: #24292EFF">,</span></span>
<span class="line"><span style="color: #24292EFF">    context</span></span>
<span class="line"><span style="color: #D32F2F">ORDER BY</span></span>
<span class="line"><span style="color: #24292EFF">    Hits </span><span style="color: #D32F2F">DESC</span></span></code></pre></div>



<p class="wp-block-paragraph">You can change the data context according to your needs.</p>
<p>The post <a href="https://www.bugrakeskin.com/exchange-451-timeout-waiting-for-client-input/">Exchange 451 Timeout Waiting for Client Input</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/exchange-451-timeout-waiting-for-client-input/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Microsoft 365 E7 Announced: Moving from AI Productivity to AI Operations (Expert Analysis)</title>
		<link>https://www.bugrakeskin.com/microsoft-365-e7-announced-moving-from-ai-productivity-to-ai-operations-expert-analysis/</link>
					<comments>https://www.bugrakeskin.com/microsoft-365-e7-announced-moving-from-ai-productivity-to-ai-operations-expert-analysis/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 17:03:42 +0000</pubDate>
				<category><![CDATA[Entra]]></category>
		<category><![CDATA[Agent 365]]></category>
		<category><![CDATA[AI Governance]]></category>
		<category><![CDATA[M365 Security]]></category>
		<category><![CDATA[Microsoft 365 E7]]></category>
		<category><![CDATA[Microsoft 365 Licensing]]></category>
		<category><![CDATA[Microsoft Copilot]]></category>
		<guid isPermaLink="false">https://www.bugrakeskin.com/?p=523</guid>

					<description><![CDATA[<p>Microsoft has officially signaled the next massive evolution in its licensing and technology stack: Microsoft 365 E7 is coming with General Availability (GA) set for May 1, 2026, at a listed price of $99 per user/month. (Microsoft 365 E7 91,90 €. Benutzer/Monat for Germany) On paper, E7 reads like the ultimate premium bundle: Microsoft 365 [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/microsoft-365-e7-announced-moving-from-ai-productivity-to-ai-operations-expert-analysis/">Microsoft 365 E7 Announced: Moving from AI Productivity to AI Operations (Expert Analysis)</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/8efc6eb3-5147-4b97-9886-3bafad741267.png"><img decoding="async" width="773" height="1030" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/8efc6eb3-5147-4b97-9886-3bafad741267-773x1030.png" alt="" class="wp-image-524" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/8efc6eb3-5147-4b97-9886-3bafad741267-773x1030.png 773w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/8efc6eb3-5147-4b97-9886-3bafad741267-225x300.png 225w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/8efc6eb3-5147-4b97-9886-3bafad741267-768x1024.png 768w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/8efc6eb3-5147-4b97-9886-3bafad741267.png 1086w" sizes="(max-width: 773px) 100vw, 773px" /></a></figure>



<p class="wp-block-paragraph">Microsoft has officially signaled the next massive evolution in its licensing and technology stack: <strong>Microsoft 365 E7</strong> is coming with General Availability (GA) set for <strong>May 1, 2026</strong>, at a listed price of <strong>$99 per user/month</strong>. <strong>(<em>Microsoft 365 E7 91,90 €</em>. Benutzer/Monat for Germany)</strong></p>



<p class="wp-block-paragraph">On paper, E7 reads like the ultimate premium bundle: <strong>Microsoft 365 E5 + Microsoft 365 Copilot + Microsoft Entra Suite + Agent 365</strong>, bringing together advanced security and governance capabilities across Defender, Intune, Purview, and Entra.</p>



<p class="wp-block-paragraph">But as a Senior M365 Consultant, I can tell you that signing the Enterprise Agreement is the easy part. The real challenge and the real value lies in understanding that <strong>Microsoft 365 E7 is not just a bigger enterprise license, it is a test of organizational maturity.</strong></p>



<h2 class="wp-block-heading">The Real Game-Changer: Agent 365 and &#8220;AI Operations&#8221;</h2>



<p class="wp-block-paragraph">Copilot, E5, and the security stack are already familiar conversations in the enterprise space. What fundamentally changes the discussion with E7 is <strong>Agent 365</strong>.</p>



<p class="wp-block-paragraph">Agent 365 treats AI agents both human and non-human as distinct entities that require a full operational framework. We are talking about agent inventory, lifecycle management, access control, risk signals, policy enforcement, auditing, and governance.</p>



<p class="wp-block-paragraph">This crucial shift moves the organization <strong>from a &#8220;Shadow AI&#8221; free-for-all to structured &#8220;AI Operations&#8221;.</strong> This central control plane, sitting alongside Entra and Purview, means you can finally stop managing bots on a shared spreadsheet.</p>



<h2 class="wp-block-heading">The Expert Caution: Buying E7 vs. Operating E7</h2>



<p class="wp-block-paragraph">The biggest risk with E7 is treating it purely as a pricing or bundling decision. <strong>Buying E7 will be significantly easier than operating it properly.</strong></p>



<p class="wp-block-paragraph">For organizations that are already serious about E5, Copilot, identity governance, data protection and SOC operations, E7 provides the unified orchestration they’ve been waiting for.</p>



<p class="wp-block-paragraph">However, for organizations still struggling with information protection basics, unmanaged sharing, weak data ownership or unclear Copilot governance, <strong>E7 will not magically fix anything.</strong> It will simply make existing governance gaps more visible and even potentially more risky.</p>



<p class="wp-block-paragraph">We have seen this pattern before with Copilot readiness. The licenses arrive first and the harder questions come later.. permissions, data exposure, retention, audit, insider risk and ownership.</p>



<h2 class="wp-block-heading">The Pre-E7 Action Checklist: Ask These Questions Now</h2>



<p class="wp-block-paragraph">Before upgrading to E7, your organization needs to answer a few fundamental, non-technical questions:</p>



<ul start="1" class="wp-block-list">
<li><strong>Who is allowed to create and publish agents?</strong></li>



<li><strong>Who owns the full lifecycle of those agents?</strong></li>



<li><strong>How does Entra ownership map to agent access?</strong></li>



<li><strong>Are your Purview labels and DLP policies ready to protect the data those agents will reach?</strong></li>



<li><strong>Will Defender XDR provide sufficient visibility during an AI-related investigation?</strong></li>



<li><strong>Who disables or reviews an agent when something goes wrong?</strong></li>
</ul>



<h3 class="wp-block-heading">The Bottom Line</h3>



<p class="wp-block-paragraph">Microsoft 365 E7 is the most significant step yet toward a unified <strong>&#8220;Security-led AI Platform&#8221;</strong>. It forces the critical convergence of identity, data, endpoint, SOC and AI governance into one operational flow.</p>



<p class="wp-block-paragraph">The real question isn&#8217;t whether your organization needs E7. The question is whether your organization is ready to operate it.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.bugrakeskin.com/microsoft-365-e7-announced-moving-from-ai-productivity-to-ai-operations-expert-analysis/">Microsoft 365 E7 Announced: Moving from AI Productivity to AI Operations (Expert Analysis)</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/microsoft-365-e7-announced-moving-from-ai-productivity-to-ai-operations-expert-analysis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Troubleshoot Exchange Logs Using Log Parser Studio</title>
		<link>https://www.bugrakeskin.com/5-log-parser-studio-queries-that-still-help-me-troubleshoot-exchange-faster/</link>
					<comments>https://www.bugrakeskin.com/5-log-parser-studio-queries-that-still-help-me-troubleshoot-exchange-faster/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 12:54:55 +0000</pubDate>
				<category><![CDATA[Exchange]]></category>
		<category><![CDATA[analyze exchange logs]]></category>
		<category><![CDATA[analyze logs with log parser]]></category>
		<category><![CDATA[analyze protocol logs]]></category>
		<category><![CDATA[analyze smtp logs with log parser]]></category>
		<category><![CDATA[Find Non-TLS connections]]></category>
		<category><![CDATA[Identify Which TLS Versions being used]]></category>
		<category><![CDATA[log parser studio]]></category>
		<category><![CDATA[microsoft log parser studio]]></category>
		<category><![CDATA[receive connector logs]]></category>
		<category><![CDATA[Troubleshooting SMTP Authentication Failures]]></category>
		<guid isPermaLink="false">https://www.bugrakeskin.com/?p=509</guid>

					<description><![CDATA[<p>Exchange troubleshooting is rarely about finding more logs.It is usually about turning the right logs into something readable before time gets wasted in the wrong place. That is why I still keep Log Parser Studio around. (old habits) It remains one of the fastest ways to parse raw IIS and Exchange protocol logs and turn [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/5-log-parser-studio-queries-that-still-help-me-troubleshoot-exchange-faster/">Troubleshoot Exchange Logs Using Log Parser Studio</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Exchange troubleshooting is rarely about finding more logs.<br>It is usually about turning the right logs into something readable before time gets wasted in the wrong place.</p>



<p class="wp-block-paragraph">That is why I still keep Log Parser Studio around. (old habits)</p>



<p class="wp-block-paragraph">It remains one of the fastest ways to parse raw IIS and Exchange protocol logs and turn them into readable output. For this kind of log work, it is often more practical than building the same view through PowerShell from scratch. When I need to extract some raw data to group and filter SMTP, authentication, relay or any IIS-related logs quickly, it still does the job well. For admins who still have to manage on-prem Exchange, that is reason enough to keep it around.</p>



<p class="wp-block-paragraph">Log Parser Studio works with a SQL-like query model, which is one reason it is still convenient for log analysis. You can filter, group, count, extract tokens and reshape raw IIS or Exchange protocol logs into something much more readable. At the same time, it is not the kind of tool where any query that looks like SQL will just work. The syntax is more sensitive, field handling needs to be precise</p>



<p class="wp-block-paragraph">Here are five patterns I still find useful in day-to-day Exchange troubleshooting.</p>



<h4 class="wp-block-heading">Find Non-TLS connections on the Receiver connector</h4>



<p class="wp-block-paragraph">Before changing certificates or tightening TLS settings in Exchange, one of the first things worth checking is whether some systems are still connecting without TLS.</p>



<p class="wp-block-paragraph">That matters because the breakage usually does not come from Exchange first. It comes from old applications, devices or internal services that were quietly sending mail in a way nobody noticed until the transport layer changed.</p>



<p class="wp-block-paragraph">This query is useful because it helps identify SMTP sessions where an <code>EHLO</code> was seen but no successful TLS negotiation event was logged for the same session.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#ffffff;font-style:italic;color:#24292eff"><span style="border-bottom:1px solid rgba(16, 41, 67, 0.2)">SQL</span></span><span role="button" tabindex="0" style="color:#24292eff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>SELECT connector-id, SenderHost, SenderEHLOName, COUNT(*) as Hits
USING
  EXTRACT_TOKEN(data,1,'EHLO') AS SenderEHLOName,
  REVERSEDNS(EXTRACT_TOKEN(remote-endpoint,0,':')) AS SenderHost
FROM
  '&#91;LOGPATH&#93;\FrontEnd\ProtocolLog\SmtpReceive\*.log',
  '&#91;LOGPATH&#93;\Hub\ProtocolLog\SmtpReceive\*.log'
WHERE
  (data LIKE 'EHLO %')
  AND session-id NOT IN (
    SELECT session-id
    FROM
      '&#91;LOGPATH&#93;\FrontEnd\ProtocolLog\SmtpReceive\*.log',
      '&#91;LOGPATH&#93;\Hub\ProtocolLog\SmtpReceive\*.log'
    WHERE context LIKE '%TLS protocol%'
    GROUP BY session-id
  )
GROUP BY
  connector-id,
  SenderHost,
  SenderEHLOName
ORDER BY Hits DESC</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki min-light" style="background-color: #ffffff" tabindex="0"><code><span class="line"><span style="color: #D32F2F">SELECT</span><span style="color: #24292EFF"> connector</span><span style="color: #D32F2F">-</span><span style="color: #24292EFF">id, SenderHost, SenderEHLOName, </span><span style="color: #6F42C1">COUNT</span><span style="color: #24292EFF">(</span><span style="color: #D32F2F">*</span><span style="color: #24292EFF">) </span><span style="color: #D32F2F">as</span><span style="color: #24292EFF"> Hits</span></span>
<span class="line"><span style="color: #D32F2F">USING</span></span>
<span class="line"><span style="color: #24292EFF">  EXTRACT_TOKEN(</span><span style="color: #D32F2F">data</span><span style="color: #24292EFF">,</span><span style="color: #1976D2">1</span><span style="color: #24292EFF">,</span><span style="color: #22863A">&#39;EHLO&#39;</span><span style="color: #24292EFF">) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> SenderEHLOName,</span></span>
<span class="line"><span style="color: #24292EFF">  REVERSEDNS(EXTRACT_TOKEN(</span><span style="color: #D32F2F">remote-endpoint</span><span style="color: #24292EFF">,</span><span style="color: #1976D2">0</span><span style="color: #24292EFF">,</span><span style="color: #22863A">&#39;:&#39;</span><span style="color: #24292EFF">)) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> SenderHost</span></span>
<span class="line"><span style="color: #D32F2F">FROM</span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #22863A">&#39;&#91;LOGPATH&#93;\FrontEnd\ProtocolLog\SmtpReceive\*.log&#39;</span><span style="color: #24292EFF">,</span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #22863A">&#39;&#91;LOGPATH&#93;\Hub\ProtocolLog\SmtpReceive\*.log&#39;</span></span>
<span class="line"><span style="color: #D32F2F">WHERE</span></span>
<span class="line"><span style="color: #24292EFF">  (</span><span style="color: #D32F2F">data</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;EHLO %&#39;</span><span style="color: #24292EFF">)</span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #D32F2F">AND</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">session-</span><span style="color: #24292EFF">id </span><span style="color: #D32F2F">NOT</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">IN</span><span style="color: #24292EFF"> (</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">SELECT</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">session-</span><span style="color: #24292EFF">id</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">FROM</span></span>
<span class="line"><span style="color: #24292EFF">      </span><span style="color: #22863A">&#39;&#91;LOGPATH&#93;\FrontEnd\ProtocolLog\SmtpReceive\*.log&#39;</span><span style="color: #24292EFF">,</span></span>
<span class="line"><span style="color: #24292EFF">      </span><span style="color: #22863A">&#39;&#91;LOGPATH&#93;\Hub\ProtocolLog\SmtpReceive\*.log&#39;</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">WHERE</span><span style="color: #24292EFF"> context </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%TLS protocol%&#39;</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">GROUP BY</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">session-</span><span style="color: #24292EFF">id</span></span>
<span class="line"><span style="color: #24292EFF">  )</span></span>
<span class="line"><span style="color: #D32F2F">GROUP BY</span></span>
<span class="line"><span style="color: #24292EFF">  connector</span><span style="color: #D32F2F">-</span><span style="color: #24292EFF">id,</span></span>
<span class="line"><span style="color: #24292EFF">  SenderHost,</span></span>
<span class="line"><span style="color: #24292EFF">  SenderEHLOName</span></span>
<span class="line"><span style="color: #D32F2F">ORDER BY</span><span style="color: #24292EFF"> Hits </span><span style="color: #D32F2F">DESC</span></span></code></pre></div>



<figure class="wp-block-image size-full"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-13.png"><img loading="lazy" decoding="async" width="626" height="812" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-13.png" alt="" class="wp-image-514" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-13.png 626w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-13-231x300.png 231w" sizes="auto, (max-width: 626px) 100vw, 626px" /></a></figure>



<h4 class="wp-block-heading">What the query is doing</h4>



<p class="wp-block-paragraph">In this example, the output quickly highlights which connectors were receiving repeated non-TLS SMTP sessions and which senders were responsible. That is usually enough to narrow the scope before digging deeper into specific applications or devices.</p>



<ul class="wp-block-list">
<li>it looks for sessions where the client sent <code>EHLO</code></li>



<li>it extracts the sending host and EHLO name</li>



<li>then it excludes any session that later logged a TLS negotiation event</li>
</ul>



<p class="wp-block-paragraph">What remains is a list of SMTP sessions that appear to have stayed non-TLS.</p>



<h5 class="wp-block-heading">How to read the output</h5>



<p class="wp-block-paragraph"></p>



<ul class="wp-block-list">
<li><strong>connector-id</strong> shows which receive connector accepted the session</li>



<li><strong>SenderHost</strong> shows the sending system, based on the remote endpoint</li>



<li><strong>SenderEHLOName</strong> shows what the client identified itself as during SMTP negotiation</li>



<li><strong>Hits</strong> shows how often that pattern appeared</li>
</ul>



<p class="wp-block-paragraph">That is usually enough to spot legacy applications, relay devices, scanners or internal services that may need attention before a certificate or TLS-related change.</p>



<h3 class="wp-block-heading">Identify Which TLS Versions Your SMTP Clients Are Still Using</h3>



<p class="wp-block-paragraph">Once I know TLS is being used, the next question is usually straightforward: <strong>which TLS version is actually being negotiated?</strong></p>



<p class="wp-block-paragraph">That matters during Exchange upgrades, certificate renewals or any TLS hardening work. It is one thing to know that clients are using TLS. It is a different question entirely to know whether they are still negotiating something you no longer want in the environment.</p>



<p class="wp-block-paragraph">This query pulls that view directly from the Exchange receive protocol logs.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#ffffff;font-style:italic;color:#24292eff"><span style="border-bottom:1px solid rgba(16, 41, 67, 0.2)">SQL</span></span><span role="button" tabindex="0" style="color:#24292eff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>SELECT SenderHost, TLSVersion
USING
  EXTRACT_TOKEN(context, 2, ' ') AS TLSVersion,
  REVERSEDNS(EXTRACT_TOKEN(remote-endpoint, 0, ':')) AS SenderHost
FROM
  '&#91;LOGPATH&#93;\FrontEnd\ProtocolLog\SmtpReceive\*.log',
  '&#91;LOGPATH&#93;\Hub\ProtocolLog\SmtpReceive\*.log'
WHERE context LIKE '%TLS protocol%'
GROUP BY
  SenderHost,
  TLSVersion</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki min-light" style="background-color: #ffffff" tabindex="0"><code><span class="line"><span style="color: #D32F2F">SELECT</span><span style="color: #24292EFF"> SenderHost, TLSVersion</span></span>
<span class="line"><span style="color: #D32F2F">USING</span></span>
<span class="line"><span style="color: #24292EFF">  EXTRACT_TOKEN(context, </span><span style="color: #1976D2">2</span><span style="color: #24292EFF">, </span><span style="color: #22863A">&#39; &#39;</span><span style="color: #24292EFF">) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> TLSVersion,</span></span>
<span class="line"><span style="color: #24292EFF">  REVERSEDNS(EXTRACT_TOKEN(</span><span style="color: #D32F2F">remote-endpoint</span><span style="color: #24292EFF">, </span><span style="color: #1976D2">0</span><span style="color: #24292EFF">, </span><span style="color: #22863A">&#39;:&#39;</span><span style="color: #24292EFF">)) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> SenderHost</span></span>
<span class="line"><span style="color: #D32F2F">FROM</span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #22863A">&#39;&#91;LOGPATH&#93;\FrontEnd\ProtocolLog\SmtpReceive\*.log&#39;</span><span style="color: #24292EFF">,</span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #22863A">&#39;&#91;LOGPATH&#93;\Hub\ProtocolLog\SmtpReceive\*.log&#39;</span></span>
<span class="line"><span style="color: #D32F2F">WHERE</span><span style="color: #24292EFF"> context </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%TLS protocol%&#39;</span></span>
<span class="line"><span style="color: #D32F2F">GROUP BY</span></span>
<span class="line"><span style="color: #24292EFF">  SenderHost,</span></span>
<span class="line"><span style="color: #24292EFF">  TLSVersion</span></span></code></pre></div>



<figure class="wp-block-image size-full"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-14.png"><img loading="lazy" decoding="async" width="645" height="801" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-14.png" alt="" class="wp-image-517" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-14.png 645w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-14-242x300.png 242w" sizes="auto, (max-width: 645px) 100vw, 645px" /></a></figure>



<h4 class="wp-block-heading">What the query is doing</h4>



<p class="wp-block-paragraph">This query looks for log entries where Exchange recorded a TLS negotiation event.</p>



<p class="wp-block-paragraph">From that line, it extracts:</p>



<ul class="wp-block-list">
<li>the <strong>sending host</strong></li>



<li>the <strong>TLS version</strong> reported in the context field</li>
</ul>



<p class="wp-block-paragraph">It then groups the result so you can quickly see which systems are still negotiating which protocol versions.</p>



<h4 class="wp-block-heading">How to read the output</h4>



<p class="wp-block-paragraph">The output is simple:</p>



<ul class="wp-block-list">
<li><strong>SenderHost</strong> tells you which client or server initiated the connection</li>



<li><strong>TLSVersion</strong> tells you which TLS version was negotiated in that session</li>
</ul>



<p class="wp-block-paragraph">That is usually enough to answer practical questions like:</p>



<ul class="wp-block-list">
<li>are any senders still using <strong>TLS 1.0</strong> or <strong>TLS 1.1</strong>?</li>



<li>which systems will become a problem if older TLS versions are disabled?</li>



<li>are legacy applications still present even if nobody remembers them?</li>
</ul>



<h5 class="wp-block-heading">Why this is useful</h5>



<p class="wp-block-paragraph">This is one of the quickest ways to get real visibility before making a transport-side change.</p>



<p class="wp-block-paragraph">It is much better than assuming everything is already modern because the environment “should” be modern. SMTP dependencies are often older than expected, and protocol logs usually expose that faster than documentation or application inventories do.</p>



<p class="wp-block-paragraph">If I am planning TLS hardening, this is the kind of query I run first.</p>



<h4 class="wp-block-heading">Troubleshooting SMTP Authentication Failures from Application Senders</h4>



<p class="wp-block-paragraph">When an application suddenly stops sending mail, the first explanation is usually vague.</p>



<p class="wp-block-paragraph">“Nothing changed.”<br>“The credentials should still be correct.”<br>“Exchange is rejecting it.”</p>



<p class="wp-block-paragraph">At that point, I want a faster view of what Exchange is actually seeing on the receive side.</p>



<p class="wp-block-paragraph">This query filters the log for common SMTP authentication-related failures such as <code>5.7.1</code> and <code>5.7.3</code> then groups the results so repeated failures stand out immediately.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#ffffff;font-style:italic;color:#24292eff"><span style="border-bottom:1px solid rgba(16, 41, 67, 0.2)">SQL</span></span><span role="button" tabindex="0" style="color:#24292eff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>SELECT 
  connector-id,
  REVERSEDNS(SenderHost) AS ServerName,
  SenderHost AS ServerIP, 
  data AS AuthUserName, 
  COUNT(*) AS HitCount,
  context AS StatusCode
USING
  EXTRACT_TOKEN(remote-endpoint, 0, ':') AS SenderHost
FROM '&#91;LOGFILEPATH&#93;'
WHERE 
  context LIKE '%5.7.1%' OR
  context LIKE '%5.7.3%'
GROUP BY 
  connector-id,
  ServerName,
  ServerIP,
  AuthUserName,
  StatusCode
ORDER BY HitCount DESC</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki min-light" style="background-color: #ffffff" tabindex="0"><code><span class="line"><span style="color: #D32F2F">SELECT</span><span style="color: #24292EFF"> </span></span>
<span class="line"><span style="color: #24292EFF">  connector</span><span style="color: #D32F2F">-</span><span style="color: #24292EFF">id,</span></span>
<span class="line"><span style="color: #24292EFF">  REVERSEDNS(SenderHost) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> ServerName,</span></span>
<span class="line"><span style="color: #24292EFF">  SenderHost </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> ServerIP, </span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #D32F2F">data</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> AuthUserName, </span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #6F42C1">COUNT</span><span style="color: #24292EFF">(</span><span style="color: #D32F2F">*</span><span style="color: #24292EFF">) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> HitCount,</span></span>
<span class="line"><span style="color: #24292EFF">  context </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> StatusCode</span></span>
<span class="line"><span style="color: #D32F2F">USING</span></span>
<span class="line"><span style="color: #24292EFF">  EXTRACT_TOKEN(</span><span style="color: #D32F2F">remote-endpoint</span><span style="color: #24292EFF">, </span><span style="color: #1976D2">0</span><span style="color: #24292EFF">, </span><span style="color: #22863A">&#39;:&#39;</span><span style="color: #24292EFF">) </span><span style="color: #D32F2F">AS</span><span style="color: #24292EFF"> SenderHost</span></span>
<span class="line"><span style="color: #D32F2F">FROM</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;&#91;LOGFILEPATH&#93;&#39;</span></span>
<span class="line"><span style="color: #D32F2F">WHERE</span><span style="color: #24292EFF"> </span></span>
<span class="line"><span style="color: #24292EFF">  context </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%5.7.1%&#39;</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">OR</span></span>
<span class="line"><span style="color: #24292EFF">  context </span><span style="color: #D32F2F">LIKE</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&#39;%5.7.3%&#39;</span></span>
<span class="line"><span style="color: #D32F2F">GROUP BY</span><span style="color: #24292EFF"> </span></span>
<span class="line"><span style="color: #24292EFF">  connector</span><span style="color: #D32F2F">-</span><span style="color: #24292EFF">id,</span></span>
<span class="line"><span style="color: #24292EFF">  ServerName,</span></span>
<span class="line"><span style="color: #24292EFF">  ServerIP,</span></span>
<span class="line"><span style="color: #24292EFF">  AuthUserName,</span></span>
<span class="line"><span style="color: #24292EFF">  StatusCode</span></span>
<span class="line"><span style="color: #D32F2F">ORDER BY</span><span style="color: #24292EFF"> HitCount </span><span style="color: #D32F2F">DESC</span></span></code></pre></div>



<h2 class="wp-block-heading">To be continued</h2>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.bugrakeskin.com/5-log-parser-studio-queries-that-still-help-me-troubleshoot-exchange-faster/">Troubleshoot Exchange Logs Using Log Parser Studio</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/5-log-parser-studio-queries-that-still-help-me-troubleshoot-exchange-faster/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MFA Neleri Değiştirir?</title>
		<link>https://www.bugrakeskin.com/mfa-neleri-degistirir/</link>
					<comments>https://www.bugrakeskin.com/mfa-neleri-degistirir/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 07:29:40 +0000</pubDate>
				<category><![CDATA[Archive]]></category>
		<guid isPermaLink="false">http://www.bugrakeskin.com/?p=284</guid>

					<description><![CDATA[<p>Birçok kuruluş Exchange Online, Azure AD gibi Cloud servislerini benimsemeye başladı, Cloud servislerinin kullanımları arttıkça güvenlik prosedürleride gelişmekte. Şirket içi Exchange depolama ve yedeklilik konusunda endişelenmemek, firmaların sıçrama yapması için genellikle yeterli bir nedendir. Ancak buluttaki değişiklik, herhangi bir tümleşik uygulamanın artık doğrudan şirket içi Exchange ortamına değil, internet üzerinden Exchange Online ortamına bağlanması gerektiğinden, [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/mfa-neleri-degistirir/">MFA Neleri Değiştirir?</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="974" height="588" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-59.png" alt="" class="wp-image-285" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-59.png 974w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-59-300x181.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-59-768x464.png 768w" sizes="auto, (max-width: 974px) 100vw, 974px" /></figure>



<p class="wp-block-paragraph">Birçok kuruluş Exchange Online, Azure AD gibi Cloud servislerini benimsemeye başladı, Cloud servislerinin kullanımları arttıkça güvenlik prosedürleride gelişmekte.</p>



<p class="wp-block-paragraph">Şirket içi Exchange depolama ve yedeklilik konusunda endişelenmemek, firmaların sıçrama yapması için genellikle yeterli bir nedendir. Ancak buluttaki değişiklik, herhangi bir tümleşik uygulamanın artık doğrudan şirket içi Exchange ortamına değil, internet üzerinden Exchange Online ortamına bağlanması gerektiğinden, güvenlik endişelerini de beraberinde getirmektedir.</p>



<p class="wp-block-paragraph">Bu, diğer şirket içi uygulamaların ve betiklerin bile bir kullanıcının posta kutusuna bağlanmak için buluta ulaşması gerektiği anlamına gelir. Microsoft, yıllarca Exchange Online’da Temel Kimlik Doğrulaması’na izin verdi, yani gereken tek şey bir kullanıcı adı ve parolaydı. Ancak, güvenliği artırmanın bir yolu olarak Microsoft, Exchange Online’a Temel Kimlik Doğrulaması ile bağlanma yeteneğini sona erdirme ve bunun yerine OAuth 2.0 (Modern Kimlik Doğrulaması olarak da bilinir) gerektirmeye başlama planlarını duyurdu. OAuth, diğer sistem bilgilerine erişim izni verebilen ancak onlara şifre vermeden birçok uygulama ve web sitesi için kullanılan açık bir standarttır.</p>



<p class="wp-block-paragraph">1Eylül 2022’den itibaren Microsoft sonunda Basic Authenticationu kaldırmaya başladı ve tüm tenant yöneticilerinden kullanıcıları için Modern Authentication’u açmaya davet etti.</p>
<p>The post <a href="https://www.bugrakeskin.com/mfa-neleri-degistirir/">MFA Neleri Değiştirir?</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/mfa-neleri-degistirir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cross‑Tenant Address Book Sharing in Microsoft 365: What’s Actually Possible</title>
		<link>https://www.bugrakeskin.com/cross-tenant-address-book-sharing-in-microsoft-365-whats-actually-possible/</link>
					<comments>https://www.bugrakeskin.com/cross-tenant-address-book-sharing-in-microsoft-365-whats-actually-possible/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 14:23:47 +0000</pubDate>
				<category><![CDATA[Entra]]></category>
		<category><![CDATA[B2B collaboration]]></category>
		<category><![CDATA[cross-tenant address book]]></category>
		<category><![CDATA[cross-tenant synchronization]]></category>
		<category><![CDATA[directory visibility]]></category>
		<category><![CDATA[GAL sharing]]></category>
		<category><![CDATA[Microsoft Entra ID (Azure AD)]]></category>
		<category><![CDATA[multi-tenant organization (MTO)]]></category>
		<category><![CDATA[Outlook people search]]></category>
		<category><![CDATA[Teams people search]]></category>
		<guid isPermaLink="false">https://www.bugrakeskin.com/?p=488</guid>

					<description><![CDATA[<p>When two separate Microsoft 365 tenants start working closely together, the first request usually sounds simple: “Can we share our address books so users can find each other in Outlook?” It’s a fair question and a common one. But the answer requires understanding what Microsoft 365 actually supports today, not what we wish existed. This [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/cross-tenant-address-book-sharing-in-microsoft-365-whats-actually-possible/">Cross‑Tenant Address Book Sharing in Microsoft 365: What’s Actually Possible</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When two separate Microsoft 365 tenants start working closely together, the first request usually sounds simple: <strong>“Can we share our address books so users can find each other in Outlook?”</strong></p>



<p class="wp-block-paragraph">It’s a fair question and a common one. But the answer requires understanding what Microsoft 365 actually supports today, not what we wish existed.</p>



<p class="wp-block-paragraph">This article explains what Microsoft 365 can (and cannot) do, and which approaches are actually sustainable.</p>



<span id="more-488"></span>



<h3 class="wp-block-heading">The Short Version</h3>



<ul class="wp-block-list">
<li>Microsoft 365 does <strong>not</strong> provide a native “tenant-to-tenant GAL merge.” There is no built-in feature that merges or exposes one tenant’s Global Address List to another tenant.</li>



<li>But there <em>are</em> supported ways to achieve what people usually mean by “address book sharing”: <strong>cross-tenant discoverability</strong> (users can search and find each other in Outlook/Teams).</li>
</ul>



<p class="wp-block-paragraph">The key is to stop thinking “share my GAL” and instead think:</p>



<p class="wp-block-paragraph">“How do we make users discoverable across tenants in a controlled and maintainable way?”</p>



<h3 class="wp-block-heading">What People Expect vs. What Actually Exists</h3>



<p class="wp-block-paragraph">When users say “address book,” they often mean:</p>



<ul class="wp-block-list">
<li>Outlook/Teams search can find the other tenant’s users</li>



<li>People cards show correct info (name, title, phone, etc.)</li>



<li>Address entries stay up to date automatically</li>



<li>It works both directions</li>
</ul>



<p class="wp-block-paragraph">That’s not “GAL sharing” in the classic on-prem sense. In Microsoft 365, this requires <strong>directory presence + governed trust + automation</strong>.</p>



<h3 class="wp-block-heading">What Doesn’t Work (As People Expect)</h3>



<h3 class="wp-block-heading">1) “Just invite everyone as B2B guests”</h3>



<p class="wp-block-paragraph">Inviting users as B2B guests is useful for access and collaboration, but <strong>it does not automatically create a clean, user-friendly address book experience</strong>.</p>



<ul class="wp-block-list">
<li>By default, guests may not appear the way internal employees do in Outlook/Teams directory experiences.</li>



<li>You can make guests visible, but it often comes with caveats (attributes, consistency, user experience, governance).</li>
</ul>



<p class="wp-block-paragraph"><strong>Practical takeaway:</strong> B2B guests help with access, but they are not a “GAL sharing feature.”</p>



<p class="wp-block-paragraph">Teams/Outlook search where the other tenant user is not discoverable (or appears inconsistently).</p>



<figure class="wp-block-image size-full"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-5.png"><img loading="lazy" decoding="async" width="674" height="157" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-5.png" alt="" class="wp-image-491" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-5.png 674w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-5-300x70.png 300w" sizes="auto, (max-width: 674px) 100vw, 674px" /></a></figure>



<h3 class="wp-block-heading">2) Cross-Tenant Access Settings</h3>



<p class="wp-block-paragraph">Cross-tenant access settings are important, but they control <strong>authentication and trust</strong> (who can sign in, which apps are allowed).</p>



<p class="wp-block-paragraph">They do <strong>not</strong> create directory visibility by themselves.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-6.png"><img loading="lazy" decoding="async" width="577" height="802" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-6.png" alt="" class="wp-image-492" style="width:390px;height:auto" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-6.png 577w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-6-216x300.png 216w" sizes="auto, (max-width: 577px) 100vw, 577px" /></a></figure>



<h4 class="wp-block-heading">3) “We’ll just add contacts manually”</h4>



<p class="wp-block-paragraph">Manual contacts work until:</p>



<ul class="wp-block-list">
<li>someone changes their name/title/phone</li>



<li>someone leaves the company</li>



<li>you need two-way updates</li>



<li>you hit a few hundred users</li>
</ul>



<p class="wp-block-paragraph">It becomes static, fragile, and operationally painful.</p>



<p class="wp-block-paragraph"><strong>Practical takeaway:</strong> manual contacts are acceptable only for very small environments and short-term use.</p>



<h5 class="wp-block-heading">What Actually Works (Supported Options)</h5>



<h5 class="wp-block-heading">Option 1: Cross-Tenant Synchronization (Microsoft’s intended approach)</h5>



<p class="wp-block-paragraph">Cross-tenant synchronization provisions users from Tenant A into Tenant B as <strong>local directory objects</strong> (B2B collaboration users). With the right configuration, these can be provisioned as <strong>Member</strong> type in the target tenant, enabling better discoverability.</p>



<p class="wp-block-paragraph">This is not “GAL sharing.” It is <strong>directory replication</strong>, and that distinction matters.</p>



<p class="wp-block-paragraph">What you get:</p>



<ul class="wp-block-list">
<li>users become searchable/discoverable (Outlook/Teams people search)</li>



<li>automation keeps them up to date</li>



<li>controlled scoping (sync only specific groups)</li>
</ul>



<p class="wp-block-paragraph"><strong>Why this is important:</strong><br>Most organizations don’t truly need “GAL merge.” They need <strong>reliable discoverability</strong> without manual maintenance.</p>



<p class="wp-block-paragraph"><strong>Screenshot suggestions:</strong></p>



<ul class="wp-block-list">
<li>Entra cross-tenant synchronization configuration (scope/group or user-based).<br><img loading="lazy" decoding="async" width="250" height="339" class="wp-image-496" style="width: 250px;" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/scope_based_attribute_mapping.png" alt="" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/scope_based_attribute_mapping.png 284w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/scope_based_attribute_mapping-221x300.png 221w" sizes="auto, (max-width: 250px) 100vw, 250px" /></li>



<li>Example of the synced user object in the target tenant (UserType = Member if applicable).</li>
</ul>



<figure class="wp-block-image size-full is-resized"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-9.png"><img loading="lazy" decoding="async" width="593" height="790" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-9.png" alt="" class="wp-image-497" style="width:414px;height:auto" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-9.png 593w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-9-225x300.png 225w" sizes="auto, (max-width: 593px) 100vw, 593px" /></a></figure>



<figure class="wp-block-image size-full is-resized"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-11.png"><img loading="lazy" decoding="async" width="723" height="603" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-11.png" alt="" class="wp-image-499" style="aspect-ratio:1.1990077381613535;width:412px;height:auto" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-11.png 723w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-11-300x250.png 300w" sizes="auto, (max-width: 723px) 100vw, 723px" /></a></figure>



<p class="wp-block-paragraph"><strong>Notes for architects:</strong></p>



<ul class="wp-block-list">
<li>Scoping is critical. Sync only the users that must be discoverable.</li>



<li>Attribute hygiene matters (displayName, mail, jobTitle, department, phone).</li>



<li>This is governance-heavy if the tenants are owned by different companies—get explicit agreement.</li>
</ul>



<h3 class="wp-block-heading">Option 1.1: Multi-Tenant Organization (MTO): helpful, but not magic</h3>



<p class="wp-block-paragraph">MTO does <strong>not</strong> merge tenants. It does <strong>not</strong> “share a GAL.”</p>



<p class="wp-block-paragraph">What it does provide is a Microsoft-supported framework for:</p>



<ul class="wp-block-list">
<li>governed multi-tenant relationship</li>



<li>structured cross-tenant collaboration</li>



<li>supported people-search style experiences (when combined with sync + correct configuration)</li>
</ul>



<p class="wp-block-paragraph">Think of MTO like this:</p>



<ul class="wp-block-list">
<li><strong>Cross-tenant sync</strong> does the work (provisions identities).</li>



<li><strong>MTO</strong> provides structure and governance around a multi-tenant environment.</li>
</ul>



<p class="wp-block-paragraph"><strong>Practical takeaway:</strong><br>MTO can make long-term collaboration cleaner but it’s not a “single tenant button.”</p>



<p class="wp-block-paragraph"><strong>Screenshot suggestion:</strong></p>



<ul class="wp-block-list">
<li>MTO overview / configuration page (high-level)</li>
</ul>



<figure class="wp-block-image size-large"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-12.png"><img loading="lazy" decoding="async" width="1030" height="524" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-12-1030x524.png" alt="" class="wp-image-500" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-12-1030x524.png 1030w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-12-300x153.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-12-768x390.png 768w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-12-1536x781.png 1536w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-12.png 1678w" sizes="auto, (max-width: 1030px) 100vw, 1030px" /></a></figure>



<h3 class="wp-block-heading">Option 2: Third-Party GAL Sync Tools</h3>



<p class="wp-block-paragraph">Tools like:</p>



<ul class="wp-block-list">
<li>Quest</li>



<li>CiraSync</li>



<li>SyncPenguin</li>
</ul>



<p class="wp-block-paragraph">These typically sync users as mail contacts or directory objects, often with a UI and scheduling built in.</p>



<p class="wp-block-paragraph">Pros:</p>



<ul class="wp-block-list">
<li>fast to deploy</li>



<li>often supports two-way sync easily</li>



<li>good for hybrid/complex scenarios</li>
</ul>



<p class="wp-block-paragraph">Cons:</p>



<ul class="wp-block-list">
<li>licensing cost</li>



<li>operational overhead</li>



<li>another system to manage and troubleshoot</li>
</ul>



<p class="wp-block-paragraph"><strong>Practical takeaway:</strong><br>Third-party tools can be a valid choice when Microsoft-native governance is too heavy or timelines are tight.</p>



<h5 class="wp-block-heading">Option 3: Manual imports (CSV contacts)</h5>



<p class="wp-block-paragraph">This is the “quick and dirty” approach:</p>



<ul class="wp-block-list">
<li>okay for very small environments</li>



<li>not maintainable at scale</li>



<li>always falls behind reality</li>
</ul>



<h4 class="wp-block-heading">Choosing the Right Approach</h4>



<p class="wp-block-paragraph">Use this as a decision guide:</p>



<ul class="wp-block-list">
<li><strong>Need long-term discoverability + automation + governance:</strong> Cross-tenant sync</li>



<li><strong>Need structured multi-tenant collaboration at scale:</strong> MTO + cross-tenant sync</li>



<li><strong>Need fast deployment / two-way contact sync without heavy design:</strong> 3rd-party tools</li>



<li><strong>Tiny environment / temporary need:</strong> manual contacts</li>
</ul>



<p class="wp-block-paragraph"><strong>Suggested table to include (simple):</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Method</th><th>Discoverable in Outlook/Teams</th><th>Automated updates</th><th>Notes</th></tr></thead><tbody><tr><td>Cross-tenant sync</td><td>Yes (with proper config)</td><td>Yes</td><td>Microsoft-native, scalable</td></tr><tr><td>MTO + cross-tenant sync</td><td>Yes</td><td>Yes</td><td>Better governance for multi-tenant orgs</td></tr><tr><td>3rd-party tools</td><td>Yes</td><td>Yes</td><td>Fast, but extra cost/ops</td></tr><tr><td>Manual contacts</td><td>Limited</td><td>No</td><td>Not maintainable</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">How I Approached the Case</h4>



<p class="wp-block-paragraph">In my case, two independent tenants wanted mutual address book visibility without mail-flow changes or major restructuring.</p>



<p class="wp-block-paragraph">I focused on three questions:</p>



<ol class="wp-block-list">
<li>What does Microsoft officially support?</li>



<li>What is technically possible without creating a support nightmare?</li>



<li>What will still work six months from now without manual maintenance?</li>
</ol>



<p class="wp-block-paragraph">Conclusion:</p>



<ul class="wp-block-list">
<li>There is no “share my GAL” button.</li>



<li><strong>Cross-tenant sync is the only Microsoft-native method</strong> that can provide reliable, up-to-date discoverability across tenants.</li>



<li>MTO is optional, but valuable if the tenants plan to collaborate long-term and are willing to govern the relationship.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">Final Thoughts</h4>



<p class="wp-block-paragraph">Cross-tenant address book visibility is a perfect example of a request that sounds simple but crosses architectural boundaries.</p>



<p class="wp-block-paragraph">If you’re evaluating this scenario:</p>



<ul class="wp-block-list">
<li>stop asking for “GAL sharing”</li>



<li>define the real outcome: <strong>discoverability + automation + governance</strong></li>



<li>choose the approach that matches ownership, security posture, and operational reality</li>
</ul>



<p class="wp-block-paragraph">Two tenants can collaborate well—but they will never become “one tenant” without trade-offs and governance decisions.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.bugrakeskin.com/cross-tenant-address-book-sharing-in-microsoft-365-whats-actually-possible/">Cross‑Tenant Address Book Sharing in Microsoft 365: What’s Actually Possible</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/cross-tenant-address-book-sharing-in-microsoft-365-whats-actually-possible/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reducing Inter-Site Windows Update Traffic with Intune Delivery Optimization</title>
		<link>https://www.bugrakeskin.com/reduce-windows-update-traffic-intune/</link>
					<comments>https://www.bugrakeskin.com/reduce-windows-update-traffic-intune/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 14:44:06 +0000</pubDate>
				<category><![CDATA[Intune]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[disable P2P Windows Updates]]></category>
		<category><![CDATA[Intune Delivery Optimization]]></category>
		<category><![CDATA[peer-to-peer Windows Update]]></category>
		<guid isPermaLink="false">https://www.bugrakeskin.com/?p=459</guid>

					<description><![CDATA[<p>Sometimes the issue doesn&#8217;t start in Intune. It starts with a network complaint. In this case, the network team reported unusually high utilization on MPLS and leased lines. Their traffic review showed that a significant portion of the WAN usage was caused by Windows Update content being shared between client devices, including across different sites. [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/reduce-windows-update-traffic-intune/">Reducing Inter-Site Windows Update Traffic with Intune Delivery Optimization</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Sometimes the issue doesn&#8217;t start in Intune. It starts with a network complaint.</p>



<p class="wp-block-paragraph">In this case, the network team reported unusually high utilization on MPLS and leased lines. Their traffic review showed that a significant portion of the WAN usage was caused by <strong>Windows Update content being shared between client devices</strong>, including across different sites.</p>



<figure class="wp-block-image size-full"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-1.png"><img loading="lazy" decoding="async" width="662" height="235" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-1.png" alt="" class="wp-image-461" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-1.png 662w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-1-300x106.png 300w" sizes="auto, (max-width: 662px) 100vw, 662px" /></a></figure>



<p class="wp-block-paragraph">And even with the leased lines, meaning the same happens with other sites :</p>



<p class="wp-block-paragraph">(<em>Network report showing high MPLS and leased-line utilization linked to Windows Update peer-to-peer traffic.</em>)</p>



<figure class="wp-block-image size-full"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-2.png"><img loading="lazy" decoding="async" width="663" height="244" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-2.png" alt="The issue was first raised by the network team after they identified high MPLS and leased-line utilization caused by Windows Update traffic." class="wp-image-462" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-2.png 663w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-2-300x110.png 300w" sizes="auto, (max-width: 663px) 100vw, 663px" /></a></figure>



<p class="wp-block-paragraph">That was the real problem. Devices were not only downloading updates. They were also exchanging update content with each other over inter-site links, which created unnecessary WAN traffic which is normal behavior. But not for multi-site environments.</p>



<span id="more-459"></span>



<h3 class="wp-block-heading">What i checked</h3>



<p class="wp-block-paragraph">Once the network team shared the utilization data, the pattern pointed to <strong>Delivery Optimization peer-to-peer behavior</strong>.</p>



<p class="wp-block-paragraph">The issue was not Windows Update itself.<br>The issue was that update content was being distributed in a way that didn&#8217;t fit the network design.</p>



<p class="wp-block-paragraph">In a multi-site environment, that matters. If clients start using each other as update sources across MPLS or leased lines, bandwidth consumption can grow quickly.</p>



<h3 class="wp-block-heading">What i changed</h3>



<p class="wp-block-paragraph">To reduce that behavior, I create a new profile (Windows 10 and later &#8211;> Profile type: Settings catalog and configuration the <strong>Delivery Optimization settings in Intune</strong>.</p>



<p class="wp-block-paragraph">The policy was configured as follows:</p>



<ul class="wp-block-list">
<li><strong>VPN peer caching: Not allowed</strong><br>This was intended to stop update content from being shared over VPN-connected paths where bandwidth was already limited.</li>



<li><strong>Download mode: HTTP only, no peering</strong><br>The main goal was to stop devices from using each other as update sources and force a more predictable client-to-service download model.</li>



<li><strong>Business hours background bandwidth limit: Enabled, limited to 20%</strong><br>During working hours, the priority was to reduce the impact of background update traffic on user and business traffic.</li>



<li><strong>Outside business hours: Relaxed to 80%</strong><br>After business hours, the restriction was loosened so updates could still progress without competing heavily with daytime traffic.</li>
</ul>



<figure class="wp-block-image size-full"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-3.png"><img loading="lazy" decoding="async" width="816" height="863" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-3.png" alt="" class="wp-image-464" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-3.png 816w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-3-284x300.png 284w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-3-768x812.png 768w" sizes="auto, (max-width: 816px) 100vw, 816px" /></a></figure>



<p class="wp-block-paragraph">The goal was simple: stop unnecessary peer-to-peer update sharing and make update delivery more predictable across sites.</p>



<h3 class="wp-block-heading">What happened after the change</h3>



<p class="wp-block-paragraph">After the policy was deployed, the network team monitored the WAN traffic again.</p>



<p class="wp-block-paragraph">Within a few days, they confirmed that update traffic between the main laptop groups had <strong>decreased drastically</strong>. That was the first sign that the policy change was working as expected.</p>



<p class="wp-block-paragraph"><em>(Network monitoring results showing a strong decrease in inter-site Windows Update traffic after Delivery Optimization changes.)</em></p>



<figure class="wp-block-image size-large"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-4.png"><img loading="lazy" decoding="async" width="1030" height="430" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-4-1030x430.png" alt="Follow-up monitoring confirmed a significant reduction in Windows Update traffic after the Intune policy change." class="wp-image-465" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-4-1030x430.png 1030w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-4-300x125.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-4-768x321.png 768w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-4-1536x642.png 1536w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-4-2048x856.png 2048w" sizes="auto, (max-width: 1030px) 100vw, 1030px" /></a></figure>



<p class="wp-block-paragraph">At the same time, they still observed some update-related traffic involving remote sites over MPLS. That showed an important operational reality: <strong>Intune policy can reduce the problem significantly, but in some environments the final control decision may also involve the network layer.</strong></p>



<p class="wp-block-paragraph">Delivery Optimization is useful, but it should not be left unreviewed in a multi-site environment.</p>



<p class="wp-block-paragraph">If Windows Update peer-to-peer traffic is allowed to cross inter-site links, it can easily consume WAN bandwidth in ways the network team does not want.</p>



<p class="wp-block-paragraph">In this case, adjusting Delivery Optimization through Intune reduced the problem quickly and measurably.</p>
<p>The post <a href="https://www.bugrakeskin.com/reduce-windows-update-traffic-intune/">Reducing Inter-Site Windows Update Traffic with Intune Delivery Optimization</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/reduce-windows-update-traffic-intune/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mailflow issue Exchange Onprem &#8211; Exchange Online Hybrid</title>
		<link>https://www.bugrakeskin.com/when-a-new-exchange-certificate-breaks-hybrid-mail-flow/</link>
					<comments>https://www.bugrakeskin.com/when-a-new-exchange-certificate-breaks-hybrid-mail-flow/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 12:27:33 +0000</pubDate>
				<category><![CDATA[Exchange]]></category>
		<category><![CDATA[454. 4.7.5 The certificate specified in TlsCertificateName of the SendConnector could not be found.]]></category>
		<guid isPermaLink="false">https://www.bugrakeskin.com/?p=437</guid>

					<description><![CDATA[<p>Replacing a certificate in Exchange hybrid looks simple until mail flow starts failing. In my case, the issue appeared right after a certificate replacement. Outbound queues started growing, and mail flow to Exchange Online began to degrade. At first glance, the obvious assumption was that the new certificate had already been imported successfully, so the [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/when-a-new-exchange-certificate-breaks-hybrid-mail-flow/">Mailflow issue Exchange Onprem &#8211; Exchange Online Hybrid</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Replacing a certificate in Exchange hybrid looks simple until mail flow starts failing.</p>



<p class="wp-block-paragraph">In my case, the issue appeared right after a certificate replacement. Outbound queues started growing, and mail flow to Exchange Online began to degrade. At first glance, the obvious assumption was that the new certificate had already been imported successfully, so the problem had to be somewhere else.</p>



<p class="wp-block-paragraph">It was not.</p>



<p class="wp-block-paragraph">The real issue was on the hybrid transport side. The new certificate was present but the <code>TlsCertificateName</code> used by the hybrid send connector was not correctly aligned with the new certificate identity.</p>



<p class="wp-block-paragraph">That distinction matters. In Exchange hybrid, importing and enabling a certificate doesn&#8217;t automatically mean the connector is presenting the correct TLS identity.</p>



<figure class="wp-block-image size-full"><a href="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image.png"><img loading="lazy" decoding="async" width="973" height="38" src="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image.png" alt="" class="wp-image-444" srcset="https://www.bugrakeskin.com/wp-content/uploads/2026/04/image.png 973w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-300x12.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2026/04/image-768x30.png 768w" sizes="auto, (max-width: 973px) 100vw, 973px" /></a></figure>



<p class="wp-block-paragraph"><em><code>454. 4.7.5 The certificate specified in TlsCertificateName of the SendConnector could not be found.</code></em></p>



<span id="more-437"></span>



<h3 class="wp-block-heading">What I checked</h3>



<p class="wp-block-paragraph">First, I verified the certificate details on the Exchange servers:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#222222;font-style:italic;color:#E6E6E6"><span style="border-bottom:1px solid rgba(243, 218, 218, 0.2)">PowerShell</span></span><span role="button" tabindex="0" style="color:#E6E6E6;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Get-ExchangeCertificate -Server EXCHSERVER01 |
Format-List Thumbprint,Subject,Issuer,Services,HasPrivateKey,NotAfter</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki slack-dark" style="background-color: #222222" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">Get-ExchangeCertificate</span><span style="color: #E6E6E6"> </span><span style="color: #D4D4D4">-</span><span style="color: #E6E6E6">Server EXCHSERVER01 </span><span style="color: #D4D4D4">|</span></span>
<span class="line"><span style="color: #DCDCAA">Format-List</span><span style="color: #E6E6E6"> Thumbprint</span><span style="color: #D4D4D4">,</span><span style="color: #E6E6E6">Subject</span><span style="color: #D4D4D4">,</span><span style="color: #E6E6E6">Issuer</span><span style="color: #D4D4D4">,</span><span style="color: #E6E6E6">Services</span><span style="color: #D4D4D4">,</span><span style="color: #E6E6E6">HasPrivateKey</span><span style="color: #D4D4D4">,</span><span style="color: #E6E6E6">NotAfter</span></span></code></pre></div>



<p class="wp-block-paragraph">This confirmed that the new certificate was present and usable.</p>



<p class="wp-block-paragraph">Then I generated the expected TLS string from the new certificate and compared it with the value configured on the hybrid send connector:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#222222;font-style:italic;color:#E6E6E6"><span style="border-bottom:1px solid rgba(243, 218, 218, 0.2)">PowerShell</span></span><span role="button" tabindex="0" style="color:#E6E6E6;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>$cert = Get-ExchangeCertificate -Server EXCHSERVER01 -Thumbprint &lt;NEWTHUMBPRINT>
$tls  = "&lt;I>$($cert.Issuer)&lt;S>$($cert.Subject)"
$tls

(Get-SendConnector "Outbound to Office 365_(XXX)").TlsCertificateName</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki slack-dark" style="background-color: #222222" tabindex="0"><code><span class="line"><span style="color: #9CDCFE">$cert</span><span style="color: #E6E6E6"> </span><span style="color: #D4D4D4">=</span><span style="color: #E6E6E6"> </span><span style="color: #DCDCAA">Get-ExchangeCertificate</span><span style="color: #E6E6E6"> </span><span style="color: #D4D4D4">-</span><span style="color: #E6E6E6">Server EXCHSERVER01 </span><span style="color: #D4D4D4">-</span><span style="color: #E6E6E6">Thumbprint </span><span style="color: #D4D4D4">&lt;</span><span style="color: #E6E6E6">NEWTHUMBPRINT</span><span style="color: #D4D4D4">&gt;</span></span>
<span class="line"><span style="color: #9CDCFE">$tls</span><span style="color: #E6E6E6">  </span><span style="color: #D4D4D4">=</span><span style="color: #E6E6E6"> </span><span style="color: #CE9178">&quot;&lt;I&gt;</span><span style="color: #569CD6">$(</span><span style="color: #9CDCFE">$cert.Issuer</span><span style="color: #569CD6">)</span><span style="color: #CE9178">&lt;S&gt;</span><span style="color: #569CD6">$(</span><span style="color: #9CDCFE">$cert.Subject</span><span style="color: #569CD6">)</span><span style="color: #CE9178">&quot;</span></span>
<span class="line"><span style="color: #9CDCFE">$tls</span></span>
<span class="line"></span>
<span class="line"><span style="color: #E6E6E6">(</span><span style="color: #DCDCAA">Get-SendConnector</span><span style="color: #E6E6E6"> </span><span style="color: #CE9178">&quot;Outbound to Office 365_(XXX)&quot;</span><span style="color: #E6E6E6">).TlsCertificateName</span></span></code></pre></div>



<p class="wp-block-paragraph">That comparison exposed the mismatch.</p>



<h3 class="wp-block-heading">The fix</h3>



<p class="wp-block-paragraph">Once the correct TLS string was confirmed, I updated the send connector manually:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#2e3440ff;font-style:italic;color:#d8dee9ff"><span style="border-bottom:1px solid rgba(201, 218, 248, 0.2)">PowerShell</span></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Set-SendConnector "Outbound to Office 365_(XXX)" -TlsCertificateName $tls</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">Set-SendConnector</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">Outbound to Office 365_(XXX)</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF">TlsCertificateName </span><span style="color: #81A1C1">$</span><span style="color: #D8DEE9">tls</span></span></code></pre></div>



<p class="wp-block-paragraph">To keep the hybrid transport path consistent, I also aligned the relevant receive connectors with the same TLS string:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#2e3440ff;font-style:italic;color:#d8dee9ff"><span style="border-bottom:1px solid rgba(201, 218, 248, 0.2)">PowerShell</span></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Set-ReceiveConnector "EXCHSERVER01\Default Frontend EXCHSERVER01" -TlsCertificateName $tls</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">Set-ReceiveConnector</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">EXCHSERVER01\Default Frontend EXCHSERVER01</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF">TlsCertificateName </span><span style="color: #81A1C1">$</span><span style="color: #D8DEE9">tls</span></span></code></pre></div>



<p class="wp-block-paragraph">And if the new certificate had not yet been assigned to SMTP, that needed to be corrected first:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#222222;font-style:italic;color:#E6E6E6"><span style="border-bottom:1px solid rgba(243, 218, 218, 0.2)">PowerShell</span></span><span role="button" tabindex="0" style="color:#E6E6E6;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Enable-ExchangeCertificate -Thumbprint &lt;NEWTHUMBPRINT> -Services SMTP</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki slack-dark" style="background-color: #222222" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">Enable-ExchangeCertificate</span><span style="color: #E6E6E6"> </span><span style="color: #D4D4D4">-</span><span style="color: #E6E6E6">Thumbprint </span><span style="color: #D4D4D4">&lt;</span><span style="color: #E6E6E6">NEWTHUMBPRINT</span><span style="color: #D4D4D4">&gt;</span><span style="color: #E6E6E6"> </span><span style="color: #D4D4D4">-</span><span style="color: #E6E6E6">Services SMTP</span></span></code></pre></div>



<p class="wp-block-paragraph">After that, the queues cleared and hybrid mail flow returned to normal.</p>



<h3 class="wp-block-heading">The actual lesson</h3>



<p class="wp-block-paragraph">The certificate replacement itself was not the real fix.</p>



<p class="wp-block-paragraph">The real fix was making sure the hybrid connector was using the correct TLS identity for the new certificate.</p>



<p class="wp-block-paragraph">That is the part that is easy to miss. In Exchange hybrid, a successful certificate import is only the beginning. If the connector still points to the wrong TLS certificate name, mail flow can break even though the new certificate looks fine in the certificate store.</p>
<p>The post <a href="https://www.bugrakeskin.com/when-a-new-exchange-certificate-breaks-hybrid-mail-flow/">Mailflow issue Exchange Onprem &#8211; Exchange Online Hybrid</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/when-a-new-exchange-certificate-breaks-hybrid-mail-flow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Microsoft Azure Key Vault</title>
		<link>https://www.bugrakeskin.com/microsoft-azure-key-vault/</link>
					<comments>https://www.bugrakeskin.com/microsoft-azure-key-vault/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Wed, 23 Feb 2022 12:21:00 +0000</pubDate>
				<category><![CDATA[Archive]]></category>
		<category><![CDATA[azure]]></category>
		<guid isPermaLink="false">http://www.bugrakeskin.com/?p=247</guid>

					<description><![CDATA[<p>u makalemizde Organizasyon ortamınızdaki Azure ortamında Sistem bilgilerinin yanı sıra&#160; Uygulama Datalarınızın ve Sanal Makine diskinizdeki tüm bilgilerimizi güvenlik sebebiyle şifreleme işlemi gerçekleştirebiliriz. Bu sayede birisi diskimizi ele geçirirse verilerimizi ve disk sürücümüzde neler olduğunu görme imkanı pek olmaz. Genellikle varsayılan olarak Azure , Şifreleme Anahtarı sağlayarak Platform Yönetim Anahtarı ile gelmektedir. Böylece Microsoft Azure [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/microsoft-azure-key-vault/">Microsoft Azure Key Vault</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">u makalemizde Organizasyon ortamınızdaki Azure ortamında Sistem bilgilerinin yanı sıra&nbsp; Uygulama Datalarınızın ve Sanal Makine diskinizdeki tüm bilgilerimizi güvenlik sebebiyle şifreleme işlemi gerçekleştirebiliriz. Bu sayede birisi diskimizi ele geçirirse verilerimizi ve disk sürücümüzde neler olduğunu görme imkanı pek olmaz. Genellikle varsayılan olarak Azure , Şifreleme Anahtarı sağlayarak Platform Yönetim Anahtarı ile gelmektedir. Böylece Microsoft Azure ortamındaki tüm diskler varsayılan olarak şifrelenmektedir. Ancak biz Bulut Mühendisi yada Bulut Yöneticisi olarak bu işlemleri gerçekleştirebiliriz.</p>



<p class="wp-block-paragraph">Ortamınızdaki Sanal Makine disk sürücülerinin şifreleri , Parolalar , Encryption Keys yani Şifreleme Anahtarları ve Sertifikalar gibi hassas bilgilerin tek bir merkezde depolanmasını sağlayan Azure servisidir. Bu servis Azure ortamınızda Access control yani erişim kontrolü veya loglama işlemleri sağlayarak organizasyonunuza ait hassas verilerinize güvenli erişim sağlamaktadır.</p>



<p class="wp-block-paragraph"><strong>Organizasyonunuzun Azure ortamında Azure Key Vault servisini ne amaçla kullanırsınız ?</strong></p>



<ul class="wp-block-list"><li>Secure Sockets Layer ( SSL ) , Transport Layer Security ( TLS ) sertifikalarını yönetebilir ve deployment işlemlerini sağlamanıza olanak tanır.</li><li>Organizasyon ortamınızda kullandığınız Sertifikalar , API Anahtarları ve diğer hassas bilgilerinizi güvenli şekilde depolama sağlayabilirsiniz.</li><li>Hardware Security Modules yani Donanımsal Güvenlik Modülleri tarafından desteklenen bilgileri saklayabilirsiniz.</li></ul>



<span id="more-247"></span>



<p class="wp-block-paragraph"><strong>Hardware Security Modules</strong>&nbsp;kavramını kısaca açıklamak gerekirse ; Organizasyonunuz için Hassas Kriptografik keyleri yani anahtarları fiziksel ortamda saklamak ve kriptografik işlemleri en güvenli şekilde gerçekleştirmek için üretilmiş özel güvenlik donanımı olarka tanımlayabiliriz. Bu modüller Takılabilir Kart veya bir Fiziksel Bilgisayara yada Network Sunucusuna takılabilen external bir aygıt şeklinde de olabilmektedir.</p>



<p class="wp-block-paragraph"><strong>Organizasyonunuzun Azure ortamında Azure Key Vault servisini kullanmanız size ne fayda sağlamaktadır ?</strong></p>



<ol class="wp-block-list" type="A"><li>Application secret yani Uygulama Sırlarınızı Depolama , Dağıtımlarınızı control işlemlerinizi Merkezileştirmenize imkan sağlamaktadır. Şehven sızdırılma olasılığını azaltmaktadır. Application Secret izleyebilir ve kontrol edebilirsiniz.</li><li>Organizasyonunuz için hassas verilerinizi saklamanın yanında bu verilerinize ulaşmak istediğiniz zaman Kimlik Doğrulama ve Yetkilendirme gereksinimi oluşmaktadır. Bu gereksinim verilerinizin daha da çok güvenliğinize katman sağlamaktadır.</li><li>Azure Key Vault Servisini diğer Azure Servisleri ile entegre edebilirsiniz. Bu servisleri açıklamak gerekirse ; Storage Account yani Depolama Hesabı , Container yani Kapsayıcı , Event Hubs ve daha yer veremediğimiz bir çok Azure Hizmetini entegre edebiliriz.</li></ol>



<p class="wp-block-paragraph">Azure Portalında Key Vault oluşturmak için , Azure Portalındaki arama çubuğuna&nbsp;<strong>” Key Vault “</strong>&nbsp;yazarız ardından&nbsp;<strong>“ Key vaults “</strong>&nbsp;servisini seçeriz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="816" height="328" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-31.png" alt="" class="wp-image-248" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-31.png 816w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-31-300x121.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-31-768x309.png 768w" sizes="auto, (max-width: 816px) 100vw, 816px" /></figure>



<p class="wp-block-paragraph">Azure ortamımızda herhangi bir Key Vault oluşturulmamış görünmektedir. Oluşturmak için&nbsp;<strong>” Create “</strong>&nbsp;seçeneğini seçerek ilerleriz yada 2. Bölgede&nbsp;<strong>” Create key vault “</strong>&nbsp;seçeneğini seçerek ilerleyebiliriz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="907" height="537" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-32.png" alt="" class="wp-image-249" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-32.png 907w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-32-300x178.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-32-768x455.png 768w" sizes="auto, (max-width: 907px) 100vw, 907px" /></figure>



<p class="wp-block-paragraph"><strong>” Basic “</strong>&nbsp;adımında ilk olarak Key Vault servisini kurulum yapacağımız&nbsp;<strong>” Subscription “</strong>&nbsp;ve<strong>&nbsp;” Resource Group “</strong>&nbsp;seçimini gerçekleştiririz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="792" height="506" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-33.png" alt="" class="wp-image-250" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-33.png 792w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-33-300x192.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-33-768x491.png 768w" sizes="auto, (max-width: 792px) 100vw, 792px" /></figure>



<p class="wp-block-paragraph"><strong>” Instance details “</strong>&nbsp;alanında; Oluşturucağımız<strong>&nbsp;” Key vault name “</strong>&nbsp;ismi yine Azure ortamınızda benzersiz olmalıdır (Azure yapınıza göre isimlendirme sağlayabilirsiniz)<strong>&nbsp;” Region “</strong>&nbsp;alanında Key Vault hizmetinin hangi bölgede çalışacağını seçeriz. Azure ortamınıza uygun Region&nbsp; seçebilirsiniz.</p>



<p class="wp-block-paragraph">#Picture893</p>



<p class="wp-block-paragraph"><strong>” Pricing tier “</strong>&nbsp;alanında ise Fiyatlandırma katmanı olarak&nbsp;<strong>&nbsp;” Standart “</strong>&nbsp;ve&nbsp;<strong>” Premium “</strong>&nbsp;çeşitleri bulunmaktadır. Bunlar donanım korumalı yönetim anahtarlarıdır. Yani bir anlamda donanımın kendisi güvendedir. Yalnızca Azure’un sunduğu bir yazılım değildir. Bu alanı&nbsp;<strong>” Standart</strong>&nbsp;” seçili halde bırakırız. ( Kendi azure ortamınıza göre değişim sağlayabilirsiniz. )</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="745" height="59" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-34.png" alt="" class="wp-image-251" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-34.png 745w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-34-300x24.png 300w" sizes="auto, (max-width: 745px) 100vw, 745px" /></figure>



<p class="wp-block-paragraph"><strong>” Recovery options “</strong>&nbsp;bölümünde ;</p>



<p class="wp-block-paragraph"><strong>” Soft-delete “</strong>&nbsp;seçeneğinde ise<strong>&nbsp;” Enabled “</strong>&nbsp;durumda ise ; Azure ortamındaki CLI , Powershell gibi araçlar kullanarak kısa bir zaman dilimi olarak geçici silme ile ortamınızda yeni bir key vault oluşturabilirsiniz.&nbsp;<strong>” Disabled “</strong>&nbsp;durumda ise ; Key vault oluşturma özelliği , Yıl sonuna kadar tamamen kullanımdan kaldırılıyor olacaktır.</p>



<p class="wp-block-paragraph"><strong>” Days to retain deleted vaults “</strong>&nbsp;alanında ise oluşturacağınız vault için&nbsp;<strong>” 7 İla 90 gün “</strong>&nbsp;arasında seçim sağlayabilirsiniz. Bunu bir kez konfigüre ettikten sonra&nbsp; tekrardan yapılandırma işlemi üzgünüm ki gerçekleştiremezsiniz.</p>



<p class="wp-block-paragraph"><strong>” Purge protection “</strong>&nbsp;bölümünde ise ; Key Vault Temizleme koruması olarak anılmaktadır. Bunu etkinleştirdiğinizde geri alınamaz hale gelmektedir.&nbsp;<strong>“ Enable “</strong>&nbsp;seçeneği seçilme işlemi gerçekleştirildiğinde değiştirilme veya kaldırılma işlemi sağlanamamaktadır.</p>



<p class="wp-block-paragraph">Buradaki konfigürasyonları Varsayılan halde bırakarak ilerleriz. Ardından bir sonraki adıma geçmek için&nbsp;<strong>” Next : Access Policy &gt;</strong>&nbsp;” seçeneğini seçerek ilerleriz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="786" height="441" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-35.png" alt="" class="wp-image-252" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-35.png 786w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-35-300x168.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-35-768x431.png 768w" sizes="auto, (max-width: 786px) 100vw, 786px" /></figure>



<p class="wp-block-paragraph">Bir sonraki konfigürasyon adımında ise Key Vault hizmetine kimlerin erişeceğini ve nasıl politika izleneceğini konfigüre ederiz. Bu ekranda Key Vault için Erişim Politikaları atayabilirsiniz.</p>



<p class="wp-block-paragraph"><strong>” Enable Access to : “</strong>&nbsp;bölümünde bulunan :</p>



<p class="wp-block-paragraph"><strong>” Azure Virtual Machines for deployment ”&nbsp;</strong>seçeneği<strong>&nbsp;:</strong>&nbsp;Azure ortamında bulunan Sanal Makinelerin Key Vault servisinden Gizli diziler olarak depolanan sertifikaları almasına izin verilip verilmediğini belirtmektedir.</p>



<p class="wp-block-paragraph"><strong>” Azure Resource Manager for template deployment “</strong>&nbsp;seçeneği: Azure Resource Manager’ın Key Vault servisinden gizli dizileri almasına izin verilip verilmediğini belirmektedir.</p>



<p class="wp-block-paragraph"><strong>” Azure Disk Encryption for volume encryption “</strong>&nbsp;seçeneği ise ; Azure Disk Encryption’un Key Vault servisinden gizli dizileri ve anahtarları açmasına izin verilip verilmediğini belirtir.</p>



<p class="wp-block-paragraph"><strong>” Permission Model “</strong>&nbsp;bölümünde iki seçenek karşımıza çıkmaktadır :&nbsp;<strong>” Vault access policy “</strong>&nbsp;ve&nbsp;<strong>” Azure Role-Based Access Control “</strong>&nbsp;seçenekleri karşımıza çıkmaktadır. Varsayılan olarak seçili&nbsp;<strong>” Vault access policy “</strong>&nbsp;seçeneğini seçerek devam ederiz.</p>



<p class="wp-block-paragraph"><strong>“ Vault Access Policy “</strong>&nbsp;seçeneği Güvenlik sorumlusunun veya Application veya User Group Key Vault secret key ve sertifikaları üzerinde işlemler gerçekleştirilip , gerçekleştirilmeyeceğini belirlemektedir.</p>



<p class="wp-block-paragraph"><strong>“ Azure Role-based Access Control “</strong>&nbsp;seçeneği ile Tüm önemli kasalar genelinde tüm izinleri yönetmek için tek bir alan sağlamaktadır. Key Vault için Azure RBAC ayrıca tek tek anahtarlar, secret ve sertifikalar üzerinde ayrı izinlere sahip olmak için olanaklar sağlamaktadır.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="845" height="401" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-36.png" alt="" class="wp-image-253" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-36.png 845w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-36-300x142.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-36-768x364.png 768w" sizes="auto, (max-width: 845px) 100vw, 845px" /></figure>



<p class="wp-block-paragraph"><strong>” Current Access Policy “</strong>&nbsp;bölümünde ise bu Key Vault erişimi sağlayacak kullanıcıları ekleyebilir ve görebilirsiniz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="920" height="222" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-37.png" alt="" class="wp-image-254" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-37.png 920w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-37-300x72.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-37-768x185.png 768w" sizes="auto, (max-width: 920px) 100vw, 920px" /></figure>



<p class="wp-block-paragraph">Ardından bir sonraki adıma geçmek için&nbsp;<strong>” Next : Networking “</strong>&nbsp;seçeneğini seçeriz.</p>



<p class="wp-block-paragraph"><strong>” Network Connectivity “</strong>&nbsp;bölümünde ise ; oluşturacağımız Key Vault hizmetine Genel olarak Public IP Adresleri veya Service Endpoint’leri aracılığıyla veya Private Endpoint kullanarak özel olarak bağlanabilme imkanına sahip olabilirsiniz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="753" height="400" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-38.png" alt="" class="wp-image-255" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-38.png 753w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-38-300x159.png 300w" sizes="auto, (max-width: 753px) 100vw, 753px" /></figure>



<p class="wp-block-paragraph">Bir Sonraki aşama<strong>&nbsp;” Next : Tags &gt; “</strong>&nbsp;adımında ise Key vault hizmetini daha kolay bulabilmeniz için tasarlanmıştır. Tag’leme işlemi gerçekleştirmek istemiyorsanız ,&nbsp;<strong>” Review + create “</strong>&nbsp;seçeneğini seçerek devam ederiz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="787" height="502" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-39.png" alt="" class="wp-image-256" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-39.png 787w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-39-300x191.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-39-768x490.png 768w" sizes="auto, (max-width: 787px) 100vw, 787px" /></figure>



<p class="wp-block-paragraph"><strong>” Validation passed “</strong>&nbsp;uyarısı aldığınızda Key vault oluşturmanıza sakıncamızın kalmadığının bilgisini vermek isterim.&nbsp;<strong>” Create “</strong>&nbsp;seçeneğini seçerek Deployment işlemlerini başlatırız.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="795" height="545" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-40.png" alt="" class="wp-image-257" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-40.png 795w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-40-300x206.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-40-768x526.png 768w" sizes="auto, (max-width: 795px) 100vw, 795px" /></figure>



<p class="wp-block-paragraph">Key vault servisi oluşturulma işlemi başlamıştır.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="389" height="199" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-41.png" alt="" class="wp-image-258" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-41.png 389w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-41-300x153.png 300w" sizes="auto, (max-width: 389px) 100vw, 389px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="942" height="315" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-43.png" alt="" class="wp-image-260" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-43.png 942w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-43-300x100.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-43-768x257.png 768w" sizes="auto, (max-width: 942px) 100vw, 942px" /></figure>



<p class="wp-block-paragraph">Deployment süreci tamamlanmıştır. Oluşturmuş olduğumuz&nbsp;<strong>” Key vault “</strong>&nbsp;hizmetine gitmek için&nbsp;<strong>” Go to resource “</strong>&nbsp;seçeneğini seçeriz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="944" height="381" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-44.png" alt="" class="wp-image-261" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-44.png 944w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-44-300x121.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-44-768x310.png 768w" sizes="auto, (max-width: 944px) 100vw, 944px" /></figure>



<p class="wp-block-paragraph">Oluşturmuş olduğumuz Key vault hizmetinin içeriğine girerek<strong>&nbsp;” Settings “</strong>&nbsp;bölümünden&nbsp;<strong>” Secrets “</strong>&nbsp;seçeneğini seçeriz. Key Vault ortamımızda yeni bir Secret üretmek için&nbsp;<strong>” Generate / Import “</strong>&nbsp;seçeneğini seçeriz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="873" height="541" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-45.png" alt="" class="wp-image-262" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-45.png 873w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-45-300x186.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-45-768x476.png 768w" sizes="auto, (max-width: 873px) 100vw, 873px" /></figure>



<p class="wp-block-paragraph"><strong>İlgili konfigürasyon ekranına geldiğimizde ;</strong></p>



<p class="wp-block-paragraph"><strong>” Upload Options “</strong>&nbsp;bölümünde iki seçenek karşımıza çıkmaktadır.&nbsp;<strong>” Manual “</strong>&nbsp;veya&nbsp;<strong>” Certificates “</strong>&nbsp;seçenekleri mevcuttur. Elinizde bir sertifika mevcut değilse ,<strong>&nbsp;” Manual “</strong>&nbsp;seçeneğini seçebilirsiniz. Sertifika bazı durumlar Güvenli sertifika gerektirdiğinden böyle bir seçenek mevcuttur.</p>



<p class="wp-block-paragraph"><strong>” Name “</strong>&nbsp;seçeneğinde üreteceğimiz secret’e bir isimlendirme sağlamanız gerekmektedir.</p>



<p class="wp-block-paragraph"><strong>” Value “</strong>&nbsp;seçeneğinde beğendiğimiz bir sayıyı verebiliriz. Şifreli halde gözüküyor olacaktır.&nbsp;<strong>” 37 “</strong>&nbsp;yazdım.</p>



<p class="wp-block-paragraph"><strong>” Content type “</strong>&nbsp;seçeneğinde ise secret içeriğindeki içeriğin türünü belirtebilirsiniz. Opsiyonel olarak isteğinize bağlıdır.</p>



<p class="wp-block-paragraph"><strong>” Set activation date “</strong>&nbsp;seçeneğinde Bu kaynağın ne zaman aktif hale gelebileceğini görüntüleyebilirsiniz.</p>



<p class="wp-block-paragraph"><strong>” Set expiration date “</strong>&nbsp;seçeneğinde bu kaynağın ne zaman süresinin dolacağını görüntüleyebilirsiniz.</p>



<p class="wp-block-paragraph">Ardından işlemlemlerimiz tamamlandıysa ;&nbsp;<strong>” Create “</strong>&nbsp;seçeneğini seçerek Secret oluşturma işlemi sağlayabilirsiniz.&nbsp;</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="729" height="522" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-46.png" alt="" class="wp-image-263" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-46.png 729w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-46-300x215.png 300w" sizes="auto, (max-width: 729px) 100vw, 729px" /></figure>



<p class="wp-block-paragraph">Oluşturmak istediğimiz&nbsp;<strong>” MOSecret “</strong>&nbsp;adındaki secret öğemiz oluşturulmaktadır.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="490" height="94" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-47.png" alt="" class="wp-image-264" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-47.png 490w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-47-300x58.png 300w" sizes="auto, (max-width: 490px) 100vw, 490px" /></figure>



<p class="wp-block-paragraph">Oluşturma işlemi tamamlanmıştır. Artık bu Secret öğemizi istediğimiz kişiler ile paylaşabiliriz. Bu Secret erişebilmek için Key Vault oluşturma esnasında seçmiş olduğumuz politikaları kullanabilirsiniz. Bu bir şifre olabilir, Bir Veritabanı dizisi olabilir daha da fazlası Bunların dışında herşey olabilir.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="925" height="222" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-48.png" alt="" class="wp-image-265" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-48.png 925w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-48-300x72.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-48-768x184.png 768w" sizes="auto, (max-width: 925px) 100vw, 925px" /></figure>



<p class="wp-block-paragraph">Bu şekilde Key vault oluşturarak kritik bilgilerimizi , Sertifikalarımızı ve Secret’lerimizi depolayabilir , Yönetebilir ve Azure ortamında dağıtabilirsiniz. Ortamınızda bununla alakalı erişime ihtiyaç kalmadığında kaldırmak istediğiniz kullanıcının politikalarını kaldırabilirsiniz. Azure Key Vault , Gizli şeylerinizi tutmak için güzel bir yoldur.</p>
<p>The post <a href="https://www.bugrakeskin.com/microsoft-azure-key-vault/">Microsoft Azure Key Vault</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/microsoft-azure-key-vault/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Exchange Server 2016 için Cumulative Update 19 Kurulumu &#124; Zero-Day Patching</title>
		<link>https://www.bugrakeskin.com/exchange-server-2016-icin-cumulative-update-19-kurulumu-zero-day-patching/</link>
					<comments>https://www.bugrakeskin.com/exchange-server-2016-icin-cumulative-update-19-kurulumu-zero-day-patching/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Wed, 24 Mar 2021 21:10:00 +0000</pubDate>
				<category><![CDATA[Archive]]></category>
		<guid isPermaLink="false">http://www.bugrakeskin.com/?p=281</guid>

					<description><![CDATA[<p>Bu yazımda Exchange Server üzerinde Cumulative update’in nasıl yükleneceğine dair bilgiler yer almaktadır. Ayrıca Exchange Servers 0-Day Patch geçilmesi&#160; ile ilgili Microsoft’un paylaştığı linkler, kurulması gereken patch hakkında bilgi yer almaktadır. Microsoft’un önerdiği CU versiyonunun 18 ya da 19 olması ve yayınlanan patch’in Exchange server’lara yüklenmesi.&#160; Cumulative Update Yükleme Adımları; 1-Schema’nın extend edilmesi; Schema’nın extend [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/exchange-server-2016-icin-cumulative-update-19-kurulumu-zero-day-patching/">Exchange Server 2016 için Cumulative Update 19 Kurulumu | Zero-Day Patching</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><br>Bu yazımda Exchange Server üzerinde Cumulative update’in nasıl yükleneceğine dair bilgiler yer almaktadır.</p>



<p class="wp-block-paragraph">Ayrıca Exchange Servers 0-Day Patch geçilmesi&nbsp; ile ilgili Microsoft’un paylaştığı linkler, kurulması gereken patch hakkında bilgi yer almaktadır.</p>



<p class="wp-block-paragraph"><strong>Microsoft’un önerdiği CU versiyonunun 18 ya da 19 olması ve yayınlanan patch’in Exchange server’lara yüklenmesi.&nbsp;</strong></p>



<p class="wp-block-paragraph"><strong>Cumulative Update Yükleme Adımları;</strong></p>



<p class="wp-block-paragraph"><strong>1-Schema’nın extend edilmesi;</strong></p>



<p class="wp-block-paragraph">Schema’nın extend edilmesi için ilgili admin hesabının aşağıdaki gruplara üye olması gerekmektedir.</p>



<ul class="wp-block-list"><li><strong>Domain Admin</strong></li><li><strong>Enterprise Admin</strong></li><li><strong>Schema Admin</strong></li><li><strong>Organization Management</strong></li></ul>



<span id="more-281"></span>



<p class="wp-block-paragraph"><strong>CU 19 ISO İndirme Linki</strong>Embed URLPaste a link to the content you want to display on your site.Embed<a href="https://wordpress.org/support/article/embeds/" target="_blank" rel="noreferrer noopener">Learn more about embeds(opens in a new tab)</a>Sorry, this content could not be embedded.Try again&nbsp;Convert to link</p>



<p class="wp-block-paragraph">CU19 ISO’sunun mount edilmesi ve daha sonra ISO’nun mount edildiği dizine PowerShell üzerinden gidilerek aşağıdaki komutun çalıştırılması gerekmektedir;</p>



<p class="wp-block-paragraph">.\Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareSchema</p>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-49.png" alt="This image has an empty alt attribute; its file name is image-49.png"/></figure>



<p class="wp-block-paragraph"><strong>2-Yedekleme ürünü servislerinin durdurulması;</strong></p>



<p class="wp-block-paragraph">CU yüklemeden önce organizasyonda kullanılan yedekleme ürünlerinin servislerinin durdurulması gerekmektedir.</p>



<p class="wp-block-paragraph">PowerShell ile&nbsp;<strong>stop-service</strong>&nbsp;………. &nbsp;komutu ile servisler durdurulabilir.</p>



<p class="wp-block-paragraph"><strong>3-Exchange Server’ın maintenance mod’a alınması;</strong></p>



<p class="wp-block-paragraph">Exchange Server’ın maintenance mode’a alınması gerekmektedir.</p>



<p class="wp-block-paragraph">START MAINTENANCE<br>$servername = $env:computername<br>$servers = Get-exchangeserver |? {($_.Name -ne $servername) -and ($_.Ise15orlater -eq $True)} | select fqdn<br>$target = Get-random $servers<br>Write-Host “Maintenance mode server is $($servername)”<br>Write-Host “Transport redirect target server is $($target.fqdn)”</p>



<p class="wp-block-paragraph">Write-Host “Draining Transport and UM services”<br>Set-ServerComponentState $servername -Component HubTransport -State Draining -Requester Maintenance<br>Set-ServerComponentState $servername -Component UMCallRouter -State Draining -Requester Maintenance</p>



<p class="wp-block-paragraph">Write-Host “Start Sleep for 30 seconds”<br>Start-Sleep -Seconds 30<br>Get-Queue</p>



<p class="wp-block-paragraph">Write-Host “Starting Maintenance Mode”<br>Write-Host “Moving Active Databases”<br>Move-ActiveMailboxDatabase -server $servername -MountDialOverride Lossless<br>Suspend-Clusternode $servername</p>



<p class="wp-block-paragraph">cd $ExScripts<br>.\StartDagServerMaintenance.ps1 -serverName $servername -MoveComment Maintenance -OverrideMinimumTwoCopies</p>



<p class="wp-block-paragraph">Write-Host “Redirecting messages to $($target.fqdn)”<br>Redirect-Message -Server $servername -Target $target.fqdn -confirm:$false</p>



<p class="wp-block-paragraph">Write-Host “Set server to ServerWideOffline”<br>Set-ServerComponentState $servername -Component ServerWideOffline -State Inactive -Requester Maintenance</p>



<p class="wp-block-paragraph">##CHECK THAT SERVER IS IN MAINTENANCE<br>Write-Host “##########” -ForegroundColor Yellow<br>Write-Host “Service Components should be inactive” -ForegroundColor Yellow<br>Get-ServerComponentState $servername | FT Component,State -Autosize<br>Write-Host “Server should be blocked” -ForegroundColor Yellow<br>Get-MailboxServer $servername | FL DatabaseCopyAutoActivationPolicy<br>Write-Host “Clusternode state should be paused” -ForegroundColor Yellow<br>Get-ClusterNode $servername | FL<br>Write-Host “Non-Shadow Queues should be empty” -ForegroundColor Yellow<br>Get-Queue -server $servername</p>



<p class="wp-block-paragraph">Maintenance mod’a aldıktan sonra, kontrol etmek için kullanılması gereken komut;</p>



<p class="wp-block-paragraph">Get-ServerComponentState “SERVERNAME” | Select Component, State</p>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-50.png" alt="This image has an empty alt attribute; its file name is image-50.png"/></figure>



<p class="wp-block-paragraph"><strong>4-CU19 Setup’ın başlatılması;</strong></p>



<p class="wp-block-paragraph">Mount edilmiş olan CU19 ISO dosyası içerisinden Setup admin modda çalıştırılmalıdır.</p>



<p class="wp-block-paragraph">Exchange Server 2016 CU 19 yüklemesi esnasında&nbsp; ”&nbsp;<strong>A reboot from a previous installation is pending. Please restart the system and then rerun Setup.</strong>&nbsp;” hatası verir ve reboot sonrası bu durum hala aynı ise çözüm için;</p>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-51.png" alt="This image has an empty alt attribute; its file name is image-51.png"/></figure>



<p class="wp-block-paragraph"><strong>regedit /&nbsp;HKLM\System\ControlSet001\Control\Session Manager\PendingFileRenameOperations</strong></p>



<p class="wp-block-paragraph">Bu alanı açarak içeriğinin temizlenmesi reboot sorununu çözümleyecektir.</p>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-52.png" alt="This image has an empty alt attribute; its file name is image-52.png"/></figure>



<p class="wp-block-paragraph"><strong>5-Exchange Servers 0-Day Patch ilgili patch dosyasının yüklenmesi;</strong></p>



<p class="wp-block-paragraph">5 farklı zafiyet bulunuyor fakat tek patch içerisinde hepsinin çözümü var görülüyor. Microsoft Exchange Server kullanan tüm organizasyonların acilen bu patch’i geçmelerini istiyor.</p>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-53.png" alt="This image has an empty alt attribute; its file name is image-53.png"/></figure>



<p class="wp-block-paragraph">Zafiyetler ile ilgili linkler;Embed URLPaste a link to the content you want to display on your site.Embed<a href="https://wordpress.org/support/article/embeds/" target="_blank" rel="noreferrer noopener">Learn more about embeds(opens in a new tab)</a>Sorry, this content could not be embedded.Try again&nbsp;Convert to linkEmbed URLPaste a link to the content you want to display on your site.Embed<a href="https://wordpress.org/support/article/embeds/" target="_blank" rel="noreferrer noopener">Learn more about embeds(opens in a new tab)</a>Sorry, this content could not be embedded.Try again&nbsp;Convert to link</p>



<figure><a href="https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers/"></a><iframe loading="lazy" src="https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers/embed/#?secret=zSjZZO8vn3#?secret=GFW21MRQ0l" width="600" height="338"></iframe></figure>



<p class="wp-block-paragraph">Zafiyet için indirilecek Patch linki;Embed URLPaste a link to the content you want to display on your site.Embed<a href="https://wordpress.org/support/article/embeds/" target="_blank" rel="noreferrer noopener">Learn more about embeds(opens in a new tab)</a>Sorry, this content could not be embedded.Try again&nbsp;Convert to link</p>



<p class="wp-block-paragraph">Patch yüklemesi cmd admin modda iken yapılması gerekmektedir.</p>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-54.png" alt="This image has an empty alt attribute; its file name is image-54.png"/></figure>



<p class="wp-block-paragraph"><strong>6-Mainteance moddan çıkarılması;</strong></p>



<p class="wp-block-paragraph">Patch yüklemesi bittikten sonra maintenance moddan sunucunun çıkarılması gerekmektedir.</p>



<p class="wp-block-paragraph">STOP MAINTENANCE</p>



<p class="wp-block-paragraph">$servername = $env:computername<br>Set-ServerComponentState $servername -Component ServerWideOffline -State Active -Requester Maintenance<br>Set-ServerComponentState $servername -Component UMCallRouter -State Active -Requester Maintenance<br>Set-ServerComponentState $servername -Component HubTransport -State Active -Requester Maintenance<br>Restart-Service MSExchangeTransport</p>



<p class="wp-block-paragraph">$servername = $env:computername<br>cd $ExScripts<br>.\StopDagServerMaintenance.ps1 -serverName $servername</p>



<p class="wp-block-paragraph">if(($servername -like ‘*site2*’) -or ($servername -like ‘*site3*’))<br>{set-mailboxserver $servername -DatabaseCopyAutoActivationPolicy Blocked}</p>



<p class="wp-block-paragraph">#CHECK THAT SERVER IS OUT OF MAINTENANCE<br>Write-Host “Service Components should be active” -ForegroundColor Yellow<br>Get-ServerComponentState $servername | ft Component,State -Autosize<br>Write-Host “Server should be unrestricted for Site1 servers rest should be Blocked” -ForegroundColor Yellow<br>Get-MailboxServer $servername | FL DatabaseCopyAutoActivationPolicy<br>Write-Host “Clusternode state should be up” -ForegroundColor Yellow<br>Get-ClusterNode $servername | FL</p>



<p class="wp-block-paragraph">Write-Host “Wait for all database copies and content indexes to be Healthy, this may take up to 10 minutes” -ForegroundColor Yellow<br>Get-Mailboxdatabasecopystatus -server $servername</p>



<p class="wp-block-paragraph">Maintenance mod’dan çıkardıktan sonra, kontrol etmek için kullanılması gereken komut;</p>



<p class="wp-block-paragraph">Get-ServerComponentState “SERVERNAME” | Select Component, State</p>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-56.png" alt="This image has an empty alt attribute; its file name is image-56.png"/></figure>



<p class="wp-block-paragraph"><strong>7-Exchange Server versiyon kontrolü;</strong></p>



<p class="wp-block-paragraph">Cumulative Update yüklemeleri bittikten sonra aşağıdaki komut ile Exchange Server’ların versiyonları kontrol edilebilir.</p>



<p class="wp-block-paragraph"><strong>Get-ExchangeServer | fl Name, Edition, AdminDisplayVersion</strong>&nbsp;komutu ile Exchange Server’ların sürümleri kontrol edilebilir.</p>



<p class="wp-block-paragraph">Exchange Server versiyonlarına göre Build Numberların listesi;</p>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-57.png" alt="This image has an empty alt attribute; its file name is image-57.png"/></figure>



<figure class="wp-block-image"><img decoding="async" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-58.png" alt="This image has an empty alt attribute; its file name is image-58.png"/></figure>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.bugrakeskin.com/exchange-server-2016-icin-cumulative-update-19-kurulumu-zero-day-patching/">Exchange Server 2016 için Cumulative Update 19 Kurulumu | Zero-Day Patching</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/exchange-server-2016-icin-cumulative-update-19-kurulumu-zero-day-patching/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Azure Active Directory Password Policy</title>
		<link>https://www.bugrakeskin.com/azure-active-directory-password-policy/</link>
					<comments>https://www.bugrakeskin.com/azure-active-directory-password-policy/#respond</comments>
		
		<dc:creator><![CDATA[Bugra Keskin]]></dc:creator>
		<pubDate>Wed, 10 Mar 2021 11:05:00 +0000</pubDate>
				<category><![CDATA[Archive]]></category>
		<guid isPermaLink="false">http://www.bugrakeskin.com/?p=205</guid>

					<description><![CDATA[<p>ullanıcılarınızı güçlü parolalar kullanmasını konusunda bilgilendirebilirsiniz, zayıf parola kullanmanın olası tehditlere nasıl kapı açtığını anlatabilirsiniz ama onlar kendileri için kolay olanı yapmaya devam edeceklerdir. (Bazı kullanıcılar parola konusunu hiç sevmeyebiliyor.) 🙂 Bu durumda sistem yöneticileri Azure AD ortamınında parola ilkesi ayarlayarak kullanıcılarının basit parola kullanmalarını engelleyebiliyor. Bu işlem aynı zamanda Microsoft 365 tenant’ınızın güvenliğinide sağlamaya [&#8230;]</p>
<p>The post <a href="https://www.bugrakeskin.com/azure-active-directory-password-policy/">Azure Active Directory Password Policy</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ullanıcılarınızı güçlü parolalar kullanmasını konusunda bilgilendirebilirsiniz, zayıf parola kullanmanın olası tehditlere nasıl kapı açtığını anlatabilirsiniz ama onlar kendileri için kolay olanı yapmaya devam edeceklerdir. (Bazı kullanıcılar parola konusunu hiç sevmeyebiliyor.) 🙂</p>



<p class="wp-block-paragraph">Bu durumda sistem yöneticileri Azure AD ortamınında parola ilkesi ayarlayarak kullanıcılarının basit parola kullanmalarını engelleyebiliyor. Bu işlem aynı zamanda Microsoft 365 tenant’ınızın güvenliğinide sağlamaya yardımcı oluyor.</p>



<p class="wp-block-paragraph">Oluşturmuş olduğunuz parola ilkesi, bir kullanıcının parola süresi dolduğunuzda güçlü bir parola belirlemesini ve kullanıcının kaç günde bir parola değişikliği yapacağını belirlemektedir.</p>



<p class="wp-block-paragraph">Aslında birçok güvenlik şirketi parolalar hakkında kılavuzlar yayınlamaktadır, bu kılavuzlarda parolaların karmaşık olmasını gerektiğini ve 123 gibi basit parolaların kullanılmaması gerektiğini belirtmekteler.</p>



<p class="wp-block-paragraph">Azure AD parola koruması, bilinen zayıf parolaları ve bunların türevlerini algılayıp engeller ve ayrıca kuruluşunuza özgü ek zayıf terimleri de engelleyebilmektedir.</p>



<span id="more-205"></span>



<p class="wp-block-paragraph">Azure AD parola koruması ile, varsayılan genel yasaklanmış parola listeleri bir Azure AD kiracısındaki tüm kullanıcılara otomatik olarak uygulanır. Kendi iş ve güvenlik gereksinimlerinizi desteklemek için, özel bir yasaklanmış parola listesindeki girişleri tanımlayabilirsiniz. Kullanıcılar parolalarını değiştirdiğinde veya sıfırladığında, bu yasaklanmış parola listeleri, güçlü parolaların kullanılmasını zorunlu kılmak için denetleme işlemi gerçekleşir.&nbsp;<strong>(Parola kullanımı sırasında, tüm kullanıcılarınızda MFA etkinleştirmeniz önerilmektedir.)</strong></p>



<p class="wp-block-paragraph">Bu makale ile, Azure AD parola ilkelerine değineceğiz. Azure AD üzerinde üzerinde özel parola ilkeleri oluşturacağız.</p>



<h2 class="wp-block-heading">Office 365 Parola Sonu Süresini Etkinleştirme</h2>



<p class="wp-block-paragraph">Office 365 admin portalında, parola süresi varsayılan olarak devre dışı gelmektedir. Microsoft çok sık parola değiştirmeyi aslında güvenli bulmuyor. Çünkü çok sık parola değişikliği sırasında kullanıcılar kolay parolalar belirlemektedir. Siz parola uzunluğunu ne yaparsanız yapın (PasswordPassword123! – İsimdoğumtarihi!) kullanıcılar kendilerine göre basit parolalar belirlemektedirler. Bu gibi durumlarda, bir sonraki parola önceki parolaya göre tahmin edilebilir durumda olmaktadır.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Siz Office 365 Tenantınızda parola süresi sonu belirtmeyi etkinleştirmek isterseniz öncelikle, portal.office.com üzerinden office365 hesabınıza giriş yapmanız gerekmektedir.</p>



<p class="wp-block-paragraph">Daha sonra Settings – Security &amp; privacy sekmesinde bulunan Password Expiration Policy adımına geliyoruz.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1030" height="399" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-1030x399.png" alt="" class="wp-image-207" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-1030x399.png 1030w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-300x116.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-768x297.png 768w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-1536x594.png 1536w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image.png 1910w" sizes="auto, (max-width: 1030px) 100vw, 1030px" /></figure>



<p class="wp-block-paragraph">Görmüş olduğunuz gibi default olarak parola süre sonu bulunmamaktadır.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="911" height="657" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-1.png" alt="" class="wp-image-208" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-1.png 911w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-1-300x216.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-1-768x554.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /></figure>



<p class="wp-block-paragraph">Set Password to never expire seçeneğinde bulunan tiki kaldırıyoruz ve parola süresi sonu belirtiyoruz. Bu süre default olarak 90 olarak gözükmektedir, siz bunu ortamınıza göre şekillendirebilirsiniz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="912" height="706" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-2.png" alt="" class="wp-image-209" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-2.png 912w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-2-300x232.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-2-768x595.png 768w" sizes="auto, (max-width: 912px) 100vw, 912px" /></figure>



<p class="wp-block-paragraph"><strong>Bu işlemi PowerShell ilede yapmanız mümkün. Bunun için MSOL modülüne ihtiyacımız var.</strong></p>



<pre class="wp-block-code"><code># MSOL Bağlantısı
Connect-MsolService

# Parola Süresi Sonu Etkinleştirme ve gün belirtme
Set-MsolPasswordPolicy -DomainName yilmaz33.onmicrosoft.com -ValidityPeriod 90 -NotificationDays 20</code></pre>



<p class="wp-block-paragraph">Microsoft Azure AD için aslında default olarak bir password policy gelmektedir. Bu policy basit karmaşıklık ve eski parola hatırlaması içeriyor.</p>



<p class="wp-block-paragraph">Bir parolanın güçlü olarak kabul edilmesi için, ilgili politikaya uygun bir parola belirlenmesi gerekmektedir.</p>



<figure class="wp-block-table"><table><thead><tr><th>PROPERTY</th><th><strong>REQUİREMENTS</strong></th></tr></thead><tbody><tr><td>Password length</td><td>En az 8 karakter – en fazla 256 karakter</td></tr><tr><td>Password complexity</td><td>– küçük harfli karakter<br>– büyük harfli karakter<br>– sayı<br>– sembol</td></tr><tr><td>Allow characters</td><td>– A – Z<br>– a – z<br>– 0 – 9<br>– @ # $ % ^ &amp; * – _ ! + = [ ] { } | \ : ‘ , . ? / ‘ ~ ” ( ) ; &lt; &gt;</td></tr><tr><td>Password expires</td><td>Etkin değil</td></tr><tr><td>Password expiry duration</td><td>90 gün (yalnızca parola süre sonu etkinleştirildiğinde)</td></tr><tr><td>Password expiry duration notification</td><td>Şifrenin süresi dolmadan 14 gün önce</td></tr><tr><td>Password history</td><td>Son 1 parola</td></tr><tr><td>Password reset history</td><td>Son parola, kullanıcı parolayı unuttuğunda kullanılabilir.</td></tr><tr><td>Lockout threshold</td><td>10 (10 başarısız giriş denemesinden sonra hesap kilitlenir)</td></tr><tr><td>Lockout duration</td><td>60 saniye</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Kullanıcılar parolalarını arka arkaya 10 kez yanlış girerse, Azure AD hesabı bir dakika boyunca kilitler. Yanlış parola girişleri devam ederse, sistem kullanıcıyı tekrar kilitleyecek ve ardından kaba kuvvet saldırılarını saptırmak ve azaltmak için bir yöntem olarak her kilitleme süresinin süresini artıracaktır.</strong></p>



<h2 class="wp-block-heading">Azure AD Password Policy</h2>



<p class="wp-block-paragraph">Azure AD parola korumasının temel bileşenlerinin On-Premises Active Directory ortamında nasıl çalıştığını gösteren bir diagram mevcut.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="933" height="769" src="http://www.bugrakeskin.com/wp-content/uploads/2022/09/image-3.png" alt="" class="wp-image-210" srcset="https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-3.png 933w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-3-300x247.png 300w, https://www.bugrakeskin.com/wp-content/uploads/2022/09/image-3-768x633.png 768w" sizes="auto, (max-width: 933px) 100vw, 933px" /><figcaption>Bir kullanıcı parolayı yasaklanacak bir parola ilesıfırlamaya veya değiştirmeye çalıştığında, aşağıdaki hata iletilerinden biri görüntülenmektedir.<br><em>“Unfortunately, your password contains a word, phrase, or pattern that makes your password easily guessable. Please try again with a different password.”</em><br><em>“We’ve seen that password too many times before. Choose something harder to guess.”</em><br><em>“Choose a password that’s harder for people to guess.”</em><br>Azure AD Parola Koruma Lisans gereksinimleri için aşağıda bulunan tabloyu inceleyebilirsiniz.<br>USERS<br>AZURE AD PASSWORD PROTECTİON WİTH GLOBAL BANNED PASSWORD LİST<br>AZURE AD PASSWORD PROTECTİON WİTH CUSTOM BANNED PASSWORD LİST<br>Cloud-only users<br>Azure AD Free<br>Azure AD Premium P1 or P2<br>Users synchronized from on-premises AD DS<br>Azure AD Premium P1 or P2<br>Azure AD Premium P1 or P2<br>Lisans gereksinimi Microsoft’tan alınmıştır.<br>DC Aracısı, işletim sisteminden parola doğrulama isteklerini karşılamaktadır. Karşıladığı isteği DC sunucusunda bulunan Azure AD Password Protection aracına iletmektedir. Password Protection ise parola ilkesi ile karşılaştırır<br>DC’deki Aracı, 1 saatte bir Azure parola ilkesinin yeni bir kopyasını indirmek için&nbsp;<strong>SCP</strong>&nbsp;(Hizmet Bağlantı Noktası) aracılığıyla&nbsp;<strong>Azure AD parola koruma proxy hizmetini</strong>&nbsp;bulmaktadır.<br>Azure AD Password Protection kurulumu için ön gereksinimler;<br>Azure AD Password Protection kurulumundan önce aşağıdaki ön gereksinimleri karşılamanız gerekmektedir;<br><strong>Azure AD Connect</strong>&nbsp;aracılığıyla<strong>&nbsp;Azure Active Directory</strong>‘ye bağlı On-Premises Active Directory (AD) gerekmektedir.<br>Azure AD tarafında genel yönetici olarak tanımlanmış bir kullanıcı.<br><strong>On-Premises AD&nbsp;</strong>üzerinde yönetici yetkiniz olmanız gerekmektedir.<br><strong>Azure AD</strong>&nbsp;tarafında&nbsp;<strong>Password WriteBack&nbsp;</strong>etkinleştirilmesi gerekmektedir. (&nbsp;<a rel="noreferrer noopener" href="https://cengizyilmaz.net/azure-ad-uzerinde-password-writeback-nasil-etkinlestirilir/" target="_blank">Azure AD Üzerinde Password WriteBack Nasıl Etkinleştirilir&nbsp;</a>)<br>Windows Server 2012 R2 üzeri işletim sistemi gerekmektedir.<br>TLS 1.2 gereksinimi bulunmaktadır.<br>Aşağıdaki linkten uygulamalarımızı indirmemiz gerekmektedir.<br><strong>Azure AD Password Protection proxy</strong><br><strong>Azure AD Password Protection DC agent</strong><br><a href="https://www.microsoft.com/en-us/download/details.aspx?id=57071">Download Azure AD Password Protection for Windows Server Active Directory from Official Microsoft Download Center</a><br><img loading="lazy" decoding="async" width="1024" height="449" srcset="https://www.cozumpark.com/wp-content/uploads/2022/08/image-56-1024x449.png 1024w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-56-300x132.png 300w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-56-768x337.png 768w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-56-1536x674.png 1536w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-56.png 1920w" src="https://www.cozumpark.com/wp-content/uploads/2022/08/image-56-1024x449.png" alt=""><br>Azure AD Password Proxy Kurulumu<br>Azure AD Password Proxy, Azure Active Directory parola koruması bileşenlerinden ilki olarak tanımlanmaktadır. Proxy kurulumunu DC sunucusuna kurulmaması gerekmektedir (RODC üzerinede kurulmaması gerekir), Domain’e üye bir istemci üzerine kurulması gerekmektedir. Proxy aracı, Azure AD ile iletişim kurmak için çalışır, genel veya özel olarak hazırlanmış yasaklanmış parolaların bir listesini tutmakla görevlidir.<br>Azure AD proxy hizmeti, Azure AD parola korumasının iki bileşeninden ilkidir. Azure AD parola koruma proxy hizmeti rolü, Azure AD ile iletişim kurmak ve genel ve özel yasaklanmış parolalar listesinin bir kopyasını tutmaktır.<br>Domain üyesi bir istemci üzerinde indirmiş olduğumuz&nbsp;<em><strong>AzureADPasswordProtectionProxySetup.msi</strong></em>&nbsp; kurulumunu çalıştırıyoruz.<br>Lisans sözleşmesini kabul ediyoruz ve Install butonu ile devam ediyoruz.<br><img loading="lazy" decoding="async" width="602" height="367" srcset="https://www.cozumpark.com/wp-content/uploads/2022/08/image-57.png 602w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-57-300x183.png 300w" src="https://www.cozumpark.com/wp-content/uploads/2022/08/image-57.png" alt=""><br><img loading="lazy" decoding="async" width="606" height="372" srcset="https://www.cozumpark.com/wp-content/uploads/2022/08/image-58.png 606w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-58-300x184.png 300w" src="https://www.cozumpark.com/wp-content/uploads/2022/08/image-58.png" alt=""><br>Kurulum hizmeti tamamlandığı zaman PowerShell ile Proxy kurulumunun durumunu sorgulamamız gerekmektedir.<br>Çıktıda dikkat etmemiz gereken yer, Status bölümüdür. Çıktıyı incelediğimiz zaman Proxy servisinin çalıştığını görebilmekteyiz.<br><img loading="lazy" decoding="async" width="1024" height="312" srcset="https://www.cozumpark.com/wp-content/uploads/2022/08/image-59-1024x312.png 1024w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-59-300x91.png 300w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-59-768x234.png 768w, https://www.cozumpark.com/wp-content/uploads/2022/08/image-59.png 1102w" src="https://www.cozumpark.com/wp-content/uploads/2022/08/image-59-1024x312.png" alt=""><br>Proxy hizmetimiz çalışıyor ve şuan bir sorun bulunmuyor. Şimdi Proxy hizmetini Azure AD tarafına kaydetmemiz gerekiyor.<br><code>Register-AzureADPasswordProtectionProxy -AccountUpn 'UPN'</code><br><br>Daha sonra sizi modern authentication ekranı karşılamaktadır.<br><br>PS C:\users\bugra&gt; Get-Service AzureADPasswordProtectionProxy | Format-List</figcaption></figure>



<p class="wp-block-paragraph">Proxy hizmetimiz çalışıyor ve şuan bir sorun bulunmuyor. Şimdi Proxy hizmetini Azure AD tarafına kaydetmemiz gerekiyor.</p>



<pre class="wp-block-code"><code>Register-AzureADPasswordProtectionProxy -AccountUpn 'UPN'</code></pre>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.bugrakeskin.com/azure-active-directory-password-policy/">Azure Active Directory Password Policy</a> appeared first on <a href="https://www.bugrakeskin.com">Bugra Keskin | IT Pro ~Microsoft 365</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bugrakeskin.com/azure-active-directory-password-policy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
