{"id":19711,"date":"2019-11-27T12:17:56","date_gmt":"2019-11-27T14:17:56","guid":{"rendered":"https:\/\/king.host\/wiki\/?post_type=article&#038;p=19711"},"modified":"2021-05-21T11:25:34","modified_gmt":"2021-05-21T14:25:34","slug":"bloquear-ip-atraves-do-web-config","status":"publish","type":"article","link":"https:\/\/king.host\/wiki\/artigo\/bloquear-ip-atraves-do-web-config\/","title":{"rendered":"Como bloquear IP atrav\u00e9s do web.config"},"content":{"rendered":"\n<p>Seu dom\u00ednio est\u00e1 em plataforma Windows e voc\u00ea precisa bloquear um IP para que ele n\u00e3o acesse seu site? Veja agora como bloquear IP atrav\u00e9s do web.config.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_bloquear_IP_atraves_do_webconfig\"><\/span>Como bloquear IP atrav\u00e9s do web.config<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Em primeiro lugar, voc\u00ea precisa acessar o FTP do seu dom\u00ednio. Para dom\u00ednios em ambiente Windows sugerimos o FileZilla. Veja o artigo  <a rel=\"noreferrer noopener\" aria-label=\"Como acessar o FTP via FileZilla (abre numa nova aba)\" href=\"https:\/\/king.host\/wiki\/artigo\/acessar-ftp-via-filezilla\/\" target=\"_blank\">Como acessar o FTP via FileZilla<\/a>.<br>Caso n\u00e3o lembre da sua senha de FTP, veja o artigo <a rel=\"noreferrer noopener\" aria-label=\"Como alterar a senha de acesso ao FTP (abre numa nova aba)\" href=\"https:\/\/king.host\/wiki\/artigo\/como-alterar-a-senha-de-acesso-ao-ftp\/\" target=\"_blank\">Como alterar a senha de acesso ao FTP<\/a>.<\/p>\n\n\n\n<p>Ap\u00f3s logar no FTP, localize o arquivo <strong>web.config<\/strong> e edite da seguinte forma (lembrando que os comandos devem ser feitos dentro da tag \u201c<strong>system.webServer<\/strong>\u201d):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;location path=\"Default Web Site\"&gt;\n   &lt;system.webServer&gt;\n      &lt;security&gt;\n         &lt;ipSecurity&gt;\n            &lt;add ipAddress=\"172.16.100.27\" \/&gt;\n         &lt;\/ipSecurity&gt;\n      &lt;\/security&gt;\n   &lt;\/system.webServer&gt;\n&lt;\/location&gt;<\/code><\/pre>\n\n\n\n<p>Basta alterar o IP 172.16.100.27 pelo IP que voc\u00ea deseja bloquear.<br>Se h\u00e1 mais IPs a serem bloqueados, basta adicionar outra linha e assim por diante.<\/p>\n\n\n\n<box-aviso class=\"wp-block-k-box-aviso\"><strong>Mas aten\u00e7\u00e3o: N\u00e3o \u00e9 recomendado deixar que o web.config tenha mais de 100 linhas de c\u00f3digo, principalmente quando \u00e9 usado para bloqueios.<\/strong><\/box-aviso>\n\n\n\n<p>Outra op\u00e7\u00e3o para este tipo de bloqueio \u00e9 o seguinte script:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;rules&gt;\n&lt;rule name=\"RequestBlockingRule\" enabled=\"true\" patternSyntax=\"Wildcard\" stopProcessing=\"true\"&gt;\n&lt;match url=\"*\" \/&gt;\n&lt;conditions logicalGrouping=\"MatchAny\"&gt;\n&lt;add input=\"{REMOTE_ADDR}\" pattern=\"172.16.100.27\" \/&gt;\n&lt;\/conditions&gt;\n&lt;action type=\"AbortRequest\" \/&gt;\n&lt;\/rule&gt; <\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_bloquear_um_range_de_IP\"><\/span>Como bloquear um <em>range<\/em> de IP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Se voc\u00ea deseja bloquear um bloco inteiro de IP, voc\u00ea pode utilizar a seguinte regra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;location path=\"Default Web Site\"&gt;\n   &lt;system.webServer&gt;\n      &lt;security&gt;\n         &lt;ipSecurity&gt;\n            &lt;add ipAddress=\"172.16.0.0\" subnetMask=\"255.255.0.0\" \/&gt;\n         &lt;\/ipSecurity&gt;\n      &lt;\/security&gt;\n   &lt;\/system.webServer&gt;\n&lt;\/location&gt;<\/code><\/pre>\n\n\n\n<p>Por ser uma m\u00e1scara de rede classe B, esta regra bloqueia todos os IPs desde 172.16.0.1 at\u00e9 172.16.255.254.<\/p>\n\n\n\n<p>Da mesma forma como o exemplo anterior, basta adicionar outra linha para bloquear outro <em>range<\/em> de IP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bloquear_tudo_e_liberar_alguns_IPs\"><\/span>Bloquear tudo e liberar alguns IPs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Por outro lado, se voc\u00ea deseja bloquear totalmente o acesso e liberar apenas o seu IP, por exemplo, voc\u00ea pode usar a regra a seguir.<br>Neste exemplo estamos bloqueando todos e liberando apenas os IPs 172.16.1.10 e 192.168.10.198:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;security&gt;\n   &lt;ipSecurity allowUnlisted=\"false\"&gt;\n     &lt;add ipAddress=\"172.16.1.10\" allowed=\"true\"\/&gt;\n     &lt;add ipAddress=\"192.168.10.198\" allowed=\"true\"\/&gt;\n   &lt;\/ipSecurity&gt;\n&lt;\/security&gt;<\/code><\/pre>\n\n\n\n<p>A utiliza\u00e7\u00e3o deste script \u00e9 mais conveniente para algum diret\u00f3rio espec\u00edfico que voc\u00ea queira restringir o acesso.<br>Por exemplo: <em>http:\/\/dominio.com.br<\/em>\/<strong>sistema<\/strong><\/p>\n\n\n\n<p>Aqui tamb\u00e9m pode ser adicionado mais linhas para liberar mais IPs, se desejar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bloqueando_Crawlers_bots\"><\/span>Bloqueando Crawlers (bots)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Caso voc\u00ea esteja sofrendo com lentid\u00f5es em seu site\/aplica\u00e7\u00e3o, \u00e9 interessante que voc\u00ea aplique um filtro em seu web.config para bloquear <em>botnets<\/em>, como este exemplo abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;rewrite&gt;\n\t&lt;rules&gt;\n\t\t&lt;rule name=\"Abuse User Agents Blocking\" stopProcessing=\"true\"&gt;\n\t\t\t&lt;match url=\".*\" ignoreCase=\"false\"\/&gt;\n\t\t\t\t&lt;conditions logicalGrouping=\"MatchAny\"&gt;\n\t\t&lt;add input=\"{HTTP_USER_AGENT}\" pattern=\"^.*(adscanner|ahrefsbot|alphabot|applebot|AhrefsBot|awariosmartbot|bingpreview|blexbot|borneobot|coccocbot-image|com.tinyspeck.chatlyio|duckduckbot-https|e.ventures\\ investment\\ crawler|garlikcrawler|gather\\ analyze\\ provide|gluten\\ free\\ crawler|googlebot-image|healthcheckbot|http\\ banner\\ detection|hubspot\\ links\\ crawler|hypestat|internet-structure-research-project-bot|iodc;\\ odysseus|ips-agent|lightspeedsystemscrawler|linkdexbot|mail.ru_bot|masscan|masscan|megaindex.ru|mj12bot|msnbot|netcraftsurveyagent|netestate\\ ne\\ crawler|netsystemsresearch|nimbostratus-bot|nsrbot|obot|petalbot|plukkie|probethenet|riddler|safednsbot|seekport\\ crawler|semanticscholarbot|SemrushBot|semrushbot-ba|seokicks-robot|serpstatbot|slack-imgproxy|slackbot|slackbot-linkexpanding|sogou\\ web\\ spider|startmebot|surdotlybot|telegrambot|tpradstxtcrawler|trendsmapresolver|tweetmemebot|unfurlist|xovibot|yahoo!\\ slurp|yandexmobilebot|Yandex|ZoominfoBot|bingbot|DotBot).*$\"\/&gt;\n\t\t\t\t&lt;\/conditions&gt;\n\t\t&lt;action type=\"CustomResponse\" statusCode=\"403\" statusReason=\"Forbidden\" statusDescription=\"Forbidden\"\/&gt;\n\t\t&lt;\/rule&gt;\n\t&lt;\/rules&gt;\n&lt;\/rewrite&gt;<\/code><\/pre>\n\n\n\n<p><em>       <\/em><\/p>\n","protected":false},"author":9,"featured_media":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","article-category":[25],"article-tag":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article\/19711"}],"collection":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/comments?post=19711"}],"version-history":[{"count":0,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article\/19711\/revisions"}],"wp:attachment":[{"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/media?parent=19711"}],"wp:term":[{"taxonomy":"article-category","embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article-category?post=19711"},{"taxonomy":"article-tag","embeddable":true,"href":"https:\/\/king.host\/wiki\/wp-json\/wp\/v2\/article-tag?post=19711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}