<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
		<id>https://wiki.franca.unesp.br/index.php?action=history&amp;feed=atom&amp;title=ModSecurity_e_Fail2ban</id>
		<title>ModSecurity e Fail2ban - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.franca.unesp.br/index.php?action=history&amp;feed=atom&amp;title=ModSecurity_e_Fail2ban"/>
		<link rel="alternate" type="text/html" href="https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;action=history"/>
		<updated>2026-10-07T04:40:36Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;diff=1636&amp;oldid=prev</id>
		<title>Guilherme: /* Passo 6: Integração Automatizada com o Fail2Ban */</title>
		<link rel="alternate" type="text/html" href="https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;diff=1636&amp;oldid=prev"/>
				<updated>2026-08-31T20:11:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Passo 6: Integração Automatizada com o Fail2Ban&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='pt-BR'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 20h11min de 31 de agosto de 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l128&quot; &gt;Linha 128:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 128:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[DEFAULT]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[DEFAULT]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ignoreip = 127.0.0.1/8 ::1 &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;SEU_IP_DE_CASA_OU_ESCRITORIO&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ignoreip = 127.0.0.1/8 ::1 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;200.145.117.0/24 200.145.118.0/24 200.145.119.128/25 200.145.120.0/22&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Guilherme</name></author>	</entry>

	<entry>
		<id>https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;diff=1635&amp;oldid=prev</id>
		<title>Guilherme: /* Passo 4: Instalação do Plugin de Exclusão do WordPress */</title>
		<link rel="alternate" type="text/html" href="https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;diff=1635&amp;oldid=prev"/>
				<updated>2026-08-31T20:03:26Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Passo 4: Instalação do Plugin de Exclusão do WordPress&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='pt-BR'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 20h03min de 31 de agosto de 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l65&quot; &gt;Linha 65:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 65:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. Baixe o código fonte estável diretamente do repositório específico da OWASP:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. Baixe o código fonte estável diretamente do repositório específico da OWASP:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sudo wget &lt;/del&gt;https://github.com&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;baixar o release em &lt;/ins&gt;https://github.com&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/coreruleset/wordpress-rule-exclusions-plugin&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Guilherme</name></author>	</entry>

	<entry>
		<id>https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;diff=1634&amp;oldid=prev</id>
		<title>Guilherme at 20:01, 31 August 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;diff=1634&amp;oldid=prev"/>
				<updated>2026-08-31T20:01:15Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='pt-BR'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 20h01min de 31 de agosto de 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l40&quot; &gt;Linha 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. Faça o download da última release estável do repositório oficial da OWASP:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. Faça o download da última release estável do repositório oficial da OWASP:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sudo wget &lt;/del&gt;https://github.com&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;baixar o release em &lt;/ins&gt;https://github.com&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/coreruleset/coreruleset&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. Extraia o conteúdo baixado e limpe os arquivos temporários:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. Extraia o conteúdo baixado e limpe os arquivos temporários:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sudo &lt;/del&gt;tar -xvf v4.9.0.tar.gz&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;tar -xvf v4.9.0.tar.gz&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sudo &lt;/del&gt;mv coreruleset-4.9.0/* ./&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mv coreruleset-4.9.0/* ./&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sudo &lt;/del&gt;rm -rf coreruleset-4.9.0 v4.9.0.tar.gz&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;rm -rf coreruleset-4.9.0 v4.9.0.tar.gz&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Guilherme</name></author>	</entry>

	<entry>
		<id>https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;diff=1633&amp;oldid=prev</id>
		<title>Guilherme: Created page with &quot;== Implementação de WAF com ModSecurity (OWASP CRS v4) e Fail2Ban no Debian Linux ==  Este guia fornece o passo a passo completo para instalar, configurar e hardening de um...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.franca.unesp.br/index.php?title=ModSecurity_e_Fail2ban&amp;diff=1633&amp;oldid=prev"/>
				<updated>2026-08-31T19:58:41Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Implementação de WAF com ModSecurity (OWASP CRS v4) e Fail2Ban no Debian Linux ==  Este guia fornece o passo a passo completo para instalar, configurar e hardening de um...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Implementação de WAF com ModSecurity (OWASP CRS v4) e Fail2Ban no Debian Linux ==&lt;br /&gt;
&lt;br /&gt;
Este guia fornece o passo a passo completo para instalar, configurar e hardening de um servidor web Apache rodando WordPress utilizando o '''ModSecurity v2 (WAF)''', o '''OWASP Core Rule Set (CRS) v4''' com o plugin oficial de exclusões para WordPress, e a integração com o '''Fail2Ban''' para bloqueio automático de atacantes a nível de firewall.&lt;br /&gt;
&lt;br /&gt;
=== Passo 1: Atualização do Sistema e Instalação dos Pacotes ===&lt;br /&gt;
Primeiramente, atualize os repositórios do sistema operacional Debian e instale os módulos necessários do Apache e o Fail2Ban.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;br /&gt;
sudo apt install libapache2-mod-security2 fail2ban unzip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passo 2: Configuração e Ativação do ModSecurity ===&lt;br /&gt;
Por padrão, o ModSecurity é instalado no modo de simulação (DetectionOnly). É necessário criar o arquivo de configuração de produção e ativar o motor de regras.&lt;br /&gt;
&lt;br /&gt;
1. Duplique o arquivo de configuração recomendado:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Edite o arquivo principal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modsecurity/modsecurity.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Altere a seguinte diretiva no início do arquivo para ativar o bloqueio (mude de &amp;lt;code&amp;gt;DetectionOnly&amp;lt;/code&amp;gt; para &amp;lt;code&amp;gt;On&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SecRuleEngine On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passo 3: Instalação do OWASP Core Rule Set (v4) ===&lt;br /&gt;
O Debian traz por padrão regras antigas. Para garantir a segurança moderna e suporte a plugins isolados, instalamos a versão estável atualizada do OWASP CRS v4 direto da fonte.&lt;br /&gt;
&lt;br /&gt;
1. Crie o diretório de destino e acesse-o:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir -p /etc/modsecurity/owasp-crs&lt;br /&gt;
cd /etc/modsecurity/owasp-crs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Faça o download da última release estável do repositório oficial da OWASP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo wget https://github.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Extraia o conteúdo baixado e limpe os arquivos temporários:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tar -xvf v4.9.0.tar.gz&lt;br /&gt;
sudo mv coreruleset-4.9.0/* ./&lt;br /&gt;
sudo rm -rf coreruleset-4.9.0 v4.9.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Crie o arquivo base de parametrização do CRS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp crs-setup.conf.example crs-setup.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passo 4: Instalação do Plugin de Exclusão do WordPress ===&lt;br /&gt;
Para evitar falsos positivos no WordPress (erros como o Gutenberg falhar ao salvar posts ou problemas na API REST), deve-se usar o plugin oficial da OWASP para CRS v4.&lt;br /&gt;
&lt;br /&gt;
1. Acesse o diretório de plugins do WAF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /etc/modsecurity/owasp-crs/plugins&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Baixe o código fonte estável diretamente do repositório específico da OWASP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo wget https://github.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Extraia os arquivos e posicione-os na pasta raiz de plugins:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo unzip master.zip&lt;br /&gt;
sudo cp wordpress-rule-exclusions-plugin-master/plugins/wordpress-rule-exclusions-config.conf ./&lt;br /&gt;
sudo cp wordpress-rule-exclusions-plugin-master/plugins/wordpress-rule-exclusions-before.conf ./&lt;br /&gt;
sudo rm -rf wordpress-rule-exclusions-plugin-master master.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passo 5: Vinculação das Regras no Apache ===&lt;br /&gt;
Configure o Apache para carregar todos os módulos e os arquivos criados rigorosamente na ordem correta exigida pela arquitetura de plugins do CRS v4.&lt;br /&gt;
&lt;br /&gt;
1. Abra o arquivo de configuração do módulo de segurança do Apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/apache2/mods-enabled/security2.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Substitua integralmente o bloco interno da tag &amp;lt;code&amp;gt;&amp;amp;lt;IfModule security2_module&amp;amp;gt;&amp;lt;/code&amp;gt; pelo código abaixo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;IfModule security2_module&amp;gt;&lt;br /&gt;
    # Diretório de dados e arquivo base do ModSecurity&lt;br /&gt;
    SecDataDir /var/cache/modsecurity&lt;br /&gt;
    Include /etc/modsecurity/modsecurity.conf&lt;br /&gt;
&lt;br /&gt;
    # 1. Configuração base do OWASP CRS&lt;br /&gt;
    Include /etc/modsecurity/owasp-crs/crs-setup.conf&lt;br /&gt;
&lt;br /&gt;
    # 2. Configurações dos Plugins (Carregados ANTES das regras gerais)&lt;br /&gt;
    Include /etc/modsecurity/owasp-crs/plugins/*-config.conf&lt;br /&gt;
    Include /etc/modsecurity/owasp-crs/plugins/*-before.conf&lt;br /&gt;
&lt;br /&gt;
    # 3. Regras de Ataque Gerais do OWASP CRS&lt;br /&gt;
    Include /etc/modsecurity/owasp-crs/rules/*.conf&lt;br /&gt;
    &lt;br /&gt;
    # 4. Plugins que rodam DEPOIS das regras básicas&lt;br /&gt;
    Include /etc/modsecurity/owasp-crs/plugins/*-after.conf&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Valide se a sintaxe estrutural do Apache não possui erros:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Certifique-se de que o comando retorne apenas a mensagem: '''Syntax OK'''.*&lt;br /&gt;
&lt;br /&gt;
4. Reinicie o serviço do Apache se o teste passar com sucesso:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passo 6: Integração Automatizada com o Fail2Ban ===&lt;br /&gt;
O ModSecurity enviará os alertas de segurança para o arquivo de erros do Apache. O Fail2Ban lerá esse arquivo e bloqueará o IP do atacante diretamente no firewall do Linux após seguidas tentativas de ataque.&lt;br /&gt;
&lt;br /&gt;
1. Abra o arquivo de configuração global do Fail2Ban para definir uma Whitelist e evitar o seu próprio banimento:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/fail2ban/jail.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Localize a seção &amp;lt;code&amp;gt;[DEFAULT]&amp;lt;/code&amp;gt; e certifique-se de que a linha &amp;lt;code&amp;gt;ignoreip&amp;lt;/code&amp;gt; contenha o IP da sua rede administrativa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
ignoreip = 127.0.0.1/8 ::1 SEU_IP_DE_CASA_OU_ESCRITORIO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Crie um arquivo isolado para a &amp;quot;Jail&amp;quot; (jaula) do ModSecurity:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/fail2ban/jail.d/apache-modsecurity.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Insira a seguinte regra:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[apache-modsecurity]&lt;br /&gt;
enabled  = true&lt;br /&gt;
port     = http,https&lt;br /&gt;
filter   = apache-modsecurity&lt;br /&gt;
logpath  = /var/log/apache2/error.log&lt;br /&gt;
maxretry = 3&lt;br /&gt;
findtime = 600&lt;br /&gt;
bantime  = 3600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Reinicie o serviço do Fail2Ban para aplicar a nova jaula:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable fail2ban&lt;br /&gt;
sudo systemctl restart fail2ban&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passo 7: Comandos de Auditoria, Testes e Operação ===&lt;br /&gt;
&lt;br /&gt;
* '''Simular um ataque (WAF e Fail2Ban):''' Execute o comando abaixo a partir de uma máquina externa para validar se o servidor retorna erro 403. Se executado 3 vezes seguidas dentro de 10 minutos, seu IP externo será completamente banido do servidor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -I &amp;quot;http://seu-dominio-wordpress.com&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Monitorar logs do ModSecurity em tempo real:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tail -f /var/log/apache2/error.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Verificar os IPs banidos atualmente pelo Fail2Ban:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fail2ban-client status apache-modsecurity&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Remover o banimento (Unban) de um IP legítimo pego por engano:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fail2ban-client set apache-modsecurity unbanip IP_DO_USUARIO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Guilherme</name></author>	</entry>

	</feed>