<?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>whitelist - Matteo Cisilino</title>
	<atom:link href="https://www.cisilino.com/en/tag/whitelist/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.cisilino.com/en/</link>
	<description>Guide su WordPress, server e sicurezza</description>
	<lastBuildDate>Fri, 30 Oct 2026 16:06:15 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>Blocking, unblocking and whitelisting</title>
		<link>https://www.cisilino.com/en/2026/10/30/blocking-unblocking-whitelisting/</link>
					<comments>https://www.cisilino.com/en/2026/10/30/blocking-unblocking-whitelisting/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:05:34 +0000</pubDate>
				<category><![CDATA[CSDN manual]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[IP overrides]]></category>
		<category><![CDATA[whitelist]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1047</guid>

					<description><![CDATA[<p>How to block, unblock and whitelist an address from the General tab of the plugin CSDN, without locking yourself out of your own site.</p>
<p>The post <a href="https://www.cisilino.com/en/2026/10/30/blocking-unblocking-whitelisting/">Blocking, unblocking and whitelisting</a> first appeared on <a href="https://www.cisilino.com/en/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>To block IP WordPress by hand, or to free an address stopped by mistake, the Cisilino Site Defense Network plugin gives you two tools. These are local overrides and the whitelist. Both live in the General tab, not in the “Blocked IPs” tab. This chapter explains how to use them without locking yourself out of your own site.</p>
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-blocco-sblocco-whitelist.webp" alt="Diagram of WordPress with the General tab of the plugin CSDN: block IP WordPress with overrides and whitelist" width="1200" height="630"/></figure>
<h2>Where it is</h2>
<p>In the WordPress side menu open <strong>Settings &gt; Cisilino Site Defense Network</strong> (point 1 in the image). Then choose the <strong>General</strong> tab (point 2). Further down you&#8217;ll find three sections:</p>
<ul>
<li>point 3: “Recent activity log”.</li>
<li>point 4: “Local IP overrides”.</li>
<li>point 5: “Trusted IPs (whitelist)”.</li>
</ul>
<p>After every action you&#8217;re always taken back to the General tab, even if you started from the “Blocked IPs” tab. The confirmation message appears there.</p>
<h2>What it&#8217;s for</h2>
<p>Overrides let you force the blocking or unblocking of a single address. This works regardless of the failed-attempts threshold and the list received from the panel. They apply only to this site: they are never sent to the panel.</p>
<p>The whitelist serves a different purpose. It lists the addresses that must never be counted as failed login attempts, for example your office network.</p>
<h2>How to use it</h2>
<h3>Reading the log (point 3)</h3>
<p>The “Recent activity log” section shows the “Last 50 failed login attempts detected on this site.” The columns are IP, Username tried, Attempts, Status and Last seen. The status is “Blocked” or “Watched”. There is one row for each IP, with a cumulative counter. The username shown is the last one that was tried. If there&#8217;s nothing you&#8217;ll read “No events recorded.” Don&#8217;t confuse this list with the “Activity log” tab: that&#8217;s a separate topic.</p>
<h3>Blocking or unblocking an IP (point 4)</h3>
<p>This is the part you need in order to block IP WordPress by hand.</p>
<ol>
<li>In the “IP address” field write a single address, for example <code>203.0.113.5</code>.</li>
<li>Under “Action” choose “Block (ban)” or “Always unblock (unban)”.</li>
<li>Under “Duration” choose “Permanent (until you remove it)”, “1 hour”, “6 hours”, “24 hours” or “7 days”.</li>
<li>Press “Save override”. If the IP is valid you&#8217;ll read “Override saved and .htaccess updated.” The message appears even if .htaccess isn&#8217;t writable: it doesn&#8217;t prove the block is active.</li>
</ol>
<p>Below the form is the table of active overrides, with the columns IP, Action, Expiry and Created on. Each row has a “Remove” button. Removing an override shows a confirmation that .htaccess was updated. If the table is empty you&#8217;ll find “No active overrides.”</p>
<h3>Using the whitelist (point 5)</h3>
<ol>
<li>In the box write one address or network per line, for example <code>203.0.113.5</code> or <code>203.0.113.0/24</code>.</li>
<li>Press “Save whitelist”. You&#8217;ll read “Whitelist saved.”</li>
</ol>
<p>If your IP isn&#8217;t in the list, a warning tells you so. The “Add to whitelist” button inserts only that entry and leaves the others untouched.</p>
<h2>Default values and limits</h2>
<ul>
<li>The default action is “Block (ban)”, and the default duration is “Permanent (until you remove it)”.</li>
<li>The “IP address” field accepts only a single IPv4 or IPv6 address. A CIDR such as <code>203.0.113.0/24</code> is rejected with “Invalid IP.”</li>
<li>Each IP can have only one override. If you save a second one for the same address, it replaces the first.</li>
<li>The whitelist accepts single IPs and IPv4 CIDR networks with a prefix from 0 to 32. Watch out: <code>0.0.0.0/0</code> is accepted and covers every IPv4 address, so it switches off failed-login counting for everyone. For IPv6 only the exact address is valid.</li>
<li>Invalid rows in the whitelist are discarded, and the message tells you how many, for example “1 row discarded because it is invalid.” Duplicates are removed.</li>
<li>Saving the whitelist replaces the entire previous list.</li>
</ul>
<p><strong>Warning:</strong> the “IP address” field is already filled in with your own IP, and below it you&#8217;ll read “Your current IP is …”. The default action is “Block (ban)”. If you press “Save override” without looking, you block yourself, immediately, and you&#8217;ll see a 403 error on the whole site. Always check the action and the address before saving.</p>
<p><strong>Warning:</strong> the “Unblock” button on the “Blocked IPs” tab asks for no confirmation. It immediately creates a permanent override. The whitelist doesn&#8217;t remove existing blocks: an IP that&#8217;s already blocked stays blocked even if you add it to the list, until you unblock it. It doesn&#8217;t stop the panel&#8217;s blocks, the security list or the manual bans either: it only stops failed logins from being counted. Blocking also only works with Apache or LiteSpeed, and with a writable <code>.htaccess</code> file. With other servers the ban exists in the tables, but the server doesn&#8217;t apply it.</p>
<h2>What happens behind the scenes</h2>
<p>When you decide to block IP WordPress with an override, the plugin rewrites a block of <code>.htaccess</code> between <code># BEGIN Cisilino Site Defense Network</code> and <code># END Cisilino Site Defense Network</code>. The rest of the file is left untouched. The blocked IPs are the union of four sources: the local block for failed logins, the panel&#8217;s list, the optional list from the “Security level”, and manual bans. The unban removes from that union the entry matching the address you wrote. A panel network (for example <code>198.51.100.0/24</code>) only leaves if you unblock <code>198.51.100.0</code>, not a single IP inside that network. The unblock also applies to the optional “Security level” list (Noob, Casual, Berserk). Those IPs don&#8217;t appear in the “Blocked IPs” tab, but an unban neutralises them anyway.</p>
<p>The plugin reads the visitor&#8217;s IP from <code>REMOTE_ADDR</code> and ignores <code>X-Forwarded-For</code>. Behind a proxy or a CDN the address seen can be the proxy&#8217;s. In that case a block risks hitting every visitor.</p>
<p>Expirations work like this:</p>
<ul>
<li>A timed manual ban is removed when it expires, and the address leaves <code>.htaccess</code> at the next check cycle, within around 15 minutes.</li>
<li>A local ban, the kind triggered by too many failed logins, doesn&#8217;t expire on its own. It is removed only with an unban.</li>
<li>A timed unban, once it expires, brings the block back if the original source is still there.</li>
</ul>
<p>Every time you save or remove an override, and every change to the whitelist, is written to the activity log.</p>
<h2>Practical examples</h2>
<h3>Block IP WordPress for a day</h3>
<p>You want to stop the address <code>203.0.113.5</code> for 24 hours. Write it in “IP address”, leave “Block (ban)”, choose “24 hours” and press “Save override”. In the “Blocked IPs” tab it will show up with the source “manual”.</p>
<h3>Whitelist for the office network</h3>
<p>Write <code>203.0.113.0/24</code> into the whitelist and press “Save whitelist”. From that moment the wrong logins from that network are no longer counted. Do this before testing with wrong passwords.</p>
<h3>I&#8217;ve blocked myself</h3>
<p>If you can still open the admin area, for example from your phone on mobile data, go to “Blocked IPs” and press “Unblock” on your IP. Then add it to the whitelist. If instead you see a 403 across the whole site, you can connect via FTP and remove the line with your IP from the <code>.htaccess</code> file. Be careful: the plugin can rewrite it on the next event, so as soon as you&#8217;re back in, use “Unblock” and the whitelist.</p>
<p>To understand more about how Apache handles these access controls, read the <a href="https://httpd.apache.org/docs/2.4/howto/access.html" target="_blank" rel="noopener">Apache access control guide</a>: it explains the directives the plugin writes for you.</p>
<p>In short, to block IP WordPress carefully means checking the action and the address before saving. Previous chapter: <a href="https://www.cisilino.com/en/?p=975">General tab: block threshold and plugin status</a>. Next chapter: <a href="https://www.cisilino.com/en/?p=977">Blocked IPs tab: reading the blacklist</a>. The index is in <a href="https://www.cisilino.com/en/?p=972">the CSDN manual</a>.</p><p>The post <a href="https://www.cisilino.com/en/2026/10/30/blocking-unblocking-whitelisting/">Blocking, unblocking and whitelisting</a> first appeared on <a href="https://www.cisilino.com/en/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/en/2026/10/30/blocking-unblocking-whitelisting/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Block threshold: the General tab</title>
		<link>https://www.cisilino.com/en/2026/10/30/block-threshold-general-tab/</link>
					<comments>https://www.cisilino.com/en/2026/10/30/block-threshold-general-tab/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:05:31 +0000</pubDate>
				<category><![CDATA[CSDN manual]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[failed logins]]></category>
		<category><![CDATA[whitelist]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1046</guid>

					<description><![CDATA[<p>How to read the log of the last 50 failed attempts and how the block threshold works, given that it is cumulative.</p>
<p>The post <a href="https://www.cisilino.com/en/2026/10/30/block-threshold-general-tab/">Block threshold: the General tab</a> first appeared on <a href="https://www.cisilino.com/en/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>The <strong>block threshold</strong> decides after how many failed logins the plugin blocks an IP. The General tab also shows you the latest attempts it has detected. Here you&#8217;ll learn to read them and understand why an IP shows as blocked or merely watched.</p>
<figure class="wp-block-image size-large"><img decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-scheda-generale.webp" alt="Diagram of WordPress with the General tab of the plugin CSDN and the block threshold highlighted" width="1200" height="630"/></figure>
<h2>Where it is</h2>
<p>Open <strong>Settings</strong> and then “Cisilino Site Defense Network” (point 1 in the image). The “General” tab (point 2) is the one that opens first. At the top of the page there is a row of counters: “IPs blocked locally”, “IPs received from the panel” and “IPs from the optional security list”. Below, the tab has four sections. Point 3 is “Recent activity log”, point 4 is “Local IP overrides”, point 5 is “Trusted IPs (whitelist)” and point 6 is “Upload monitoring”.</p>
<p>In this chapter we cover point 3 and the threshold. Manual blocking and unblocking, and the whitelist (points 4 and 5), are in <a href="https://www.cisilino.com/en/?p=976">chapter 5</a>. Upload monitoring (point 6) is in <a href="https://www.cisilino.com/en/?p=979">chapter 8</a>.</p>
<h2>The recent activity log</h2>
<p>The section shows the “Last 50 failed login attempts detected on this site.” The columns are as follows.</p>
<ul>
<li>“IP”: the address the attempts come from.</li>
<li>“Username tried”: the last username attempted from that IP.</li>
<li>“Attempts”: the total failed logins from that IP.</li>
<li>“Status”: “Blocked” or “Watched”.</li>
<li>“Last seen”: date and time, in the site&#8217;s time zone.</li>
</ul>
<p>Watch out for one detail: there is one row per IP, not one row per attempt. If the same IP tries ten different usernames, you&#8217;ll see a single row with “Attempts” at 10 and the last username tried. If there&#8217;s nothing to show, you&#8217;ll read “No events recorded.”</p>
<p>“Watched” means the IP has failed some logins but hasn&#8217;t yet reached the threshold. Watched IPs are also sent to the panel, if you have made the connection described in <a href="https://www.cisilino.com/en/?p=974">chapter 3</a>.</p>
<h2>How the block threshold works</h2>
<p>The value is set in the “Remote settings” tab, in the “Local block threshold (failed attempts)” field. The default value is 10. The form field accepts from 3 to 100, but only the browser enforces that: the server doesn&#8217;t check the limits, and an empty value or 0 becomes 10. For every failed login the plugin reads the IP, increases that row&#8217;s counter and checks the total. When the total reaches the threshold, the row switches to “Blocked”. The <code>.htaccess</code> file is rewritten immediately, without waiting for synchronisation. On a server that ignores <code>.htaccess</code> (nginx, for instance) the block has no effect on traffic.</p>
<p>A technical example: with a threshold of 3, two failed attempts from <code>203.0.113.7</code> leave it “Watched”. The third blocks it.</p>
<p>The threshold applies even without the panel. The connection only serves to exchange IP lists, not to block locally.</p>
<h2>The threshold is cumulative</h2>
<p>This is the most surprising part of the block threshold. The counter has no time window and never resets. Every failed login adds to the previous ones, even if weeks have passed. A contributor who occasionally mistypes a password can, over time, reach the threshold and find themselves locked out of the site.</p>
<p><strong>Warning:</strong> for networks you know (office, headquarters) use the whitelist, described in <a href="https://www.cisilino.com/en/?p=976">chapter 5</a>. Whitelisted IPs aren&#8217;t even counted. A manual unblock (“Always unblock”) keeps the IP out of <code>.htaccess</code> for as long as the override exists, but it doesn&#8217;t reset the count and the row stays “Blocked”. If the override expires or you remove it, the IP goes back to being blocked.</p>
<p>To understand further why simply counting attempts isn&#8217;t enough as a defence, you&#8217;ll find a useful guide on the OWASP page about <a href="https://owasp.org/www-community/controls/Blocking_Brute_Force_Attacks" target="_blank" rel="noopener">blocking brute force attacks</a>, which discusses the pros and cons of automatic blocking.</p>
<h2>The risk of a proxy or a CDN</h2>
<p>The plugin reads the visitor&#8217;s address only from <code>REMOTE_ADDR</code>. It deliberately ignores headers such as <code>X-Forwarded-For</code>, because an attacker can forge them. If the site sits behind a proxy, a CDN or a load balancer, <code>REMOTE_ADDR</code> can be the proxy&#8217;s IP rather than the visitor&#8217;s.</p>
<p><strong>Warning:</strong> in that case every failed login would be attributed to the same IP. Once the threshold is reached, you could end up blocking the proxy&#8217;s IP, and with it every visitor. Check the “IP” column of the log: if you always see the same address, even for different users, you&#8217;re in this situation. Whitelisting the proxy&#8217;s IP unblocks the visitors, but from that moment no failed login passing through it is counted any more: the protection against repeated attempts stops working. Use an upstream defence (on the proxy or the CDN) and don&#8217;t rely on the threshold alone.</p>
<h2>If something goes wrong</h2>
<ul>
<li>A legitimate user shows as “Blocked”: add their network to the whitelist and unblock them as explained in chapter 5.</li>
<li>You always see the same IP for different people: suspect a proxy, as described above.</li>
<li>You want to change the block threshold: go to “Remote settings”, change the field and click “Save and verify connection”. If you don&#8217;t have the panel, the connection fields stay empty.</li>
</ul>
<p>The block threshold stays local: you decide how strict to be.</p>
<p>Previous chapter: <a href="https://www.cisilino.com/en/?p=974">Connecting the plugin to the panel: Remote settings</a>. Next chapter: <a href="https://www.cisilino.com/en/?p=976">Blocking, unblocking and whitelisting: the manual overrides</a>. The full index is in <a href="https://www.cisilino.com/en/?p=972">chapter 1</a>.</p><p>The post <a href="https://www.cisilino.com/en/2026/10/30/block-threshold-general-tab/">Block threshold: the General tab</a> first appeared on <a href="https://www.cisilino.com/en/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/en/2026/10/30/block-threshold-general-tab/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
