Este é um guest post de Eric Sizemore, um desenvolvedor web, programador e domainer.
À luz de eventos recentes, qualquer pessoa que use WordPress é aparentemente suscetível ao que está sendo chamado de "Distributed WordPress admin account cracking". Você pode ver este artigo para mais informações. Este post visa fornecer uma camada extra de segurança tanto para sua pasta wp-admin quanto para o arquivo wp-login.php.
Etapa 1 – Determinar Quem Terá Acesso
Em primeiro lugar, esta camada extra de segurança envolve o bloqueio de todos os IPs, exceto alguns selecionados. Se o seu IP for dinâmico, pode não ser a melhor opção para você. Se você tem muitos usuários aos quais permite acesso ao seu blog, isso pode se tornar demorado. Se você é o único autor do blog e não permite registros de qualquer forma – isso será bastante simples.
Etapa 2 – Criando .htaccess
Primeiro, vamos obter seu endereço IP. Vá para IPChicken e anote seu endereço IP. Em seguida, baixe os arquivos .htaccess que foram criados para este post.
Depois de extrair o arquivo compactado, você deverá ver um arquivo .htaccess e uma pasta wp-admin com um arquivo .htaccess dentro dela. Abra o arquivo .htaccess principal e você deverá ver:
<Arquivos wp-login.php>
Ordem Negar,Permitir
Negar de todos
Permitir de xx.xx.xx.xx
</Arquivos>
Edite a linha "Allow from" para refletir seu endereço IP. Para adicionar mais endereços IP, adicione uma nova linha com "Allow from" e o próximo endereço IP, e assim por diante. Agora, é provável que você já tenha um arquivo .htaccess em sua pasta raiz do WordPress. Se sim, edite o arquivo e copie e cole o conteúdo do seu arquivo .htaccess editado do zip, e salve/recarregue.
Agora abra o arquivo .htaccess dentro da pasta wp-admin do zip. Você deverá ver algo como:
Negar Pedido, Permitir
Negar de todos
Permitir de xx.xx.xx.xx
Faça como fez acima. E adicione quaisquer IPs extras que você queira permitir na área wp-admin. Provavelmente você não tem um arquivo .htaccess em sua pasta wp-admin, então apenas envie o arquivo .htaccess editado do zip para sua pasta wp-admin.
Passo 3 – Você terminou
E é só isso! 🙂
Sem arquivos de download.
Perfeito
Estou enfrentando um problema inaceitável com um IP, mas está funcionando em outro IP. Alguma solução?
Talvez você queira entrar em contato com o suporte da sua hospedagem sobre isso.
Eu sei que este site oferece posts de qualidade e outros materiais, existe algum outro
site que apresente tais dados com qualidade?
Não funciona. Recebi: Erro Interno do Servidor
Talvez você queira entrar em contato com o suporte da sua hospedagem sobre isso.
Obrigado. Exatamente o que eu estava procurando
Ficamos felizes que você achou isso útil 🙂
Olá a todos,
Tenho restrição de IP no meu site para wp-login.php no .htaccess. mas, meus clientes não conseguem sair, mostrando erro de restrição de IP. alguém pode me dar uma melhor solução para restrição de IP apenas para a página de login do administrador.
Qual é o código para a restrição que você está usando? Foi adicionado apenas à pasta wp-admin?
Não há um login diferente para o administrador. O problema com o logout é que o WP usa wp-login.php tanto para login quanto para logout.
A melhor opção é criar uma página de logout diferente para os clientes.
Cuidado: Se o seu site Wordpress usa Woocommerce, o código abaixo impedirá o envio dos e-mails de novos pedidos!
Olá, Obrigado pelo Artigo Útil, sou capaz de adicionar uma camada adicional de segurança ao meu site.
Mas tenho 1 pergunta, isso permitirá que apenas meu IP acesse o painel do WP-admin, etc. Isso afeta os plugins ou arquivos, etc., quero dizer, eles precisam ou não precisam da conexão com a página wp-login?
Este código é especificamente para bloquear o acesso à página de login. Dito isso, se os plugins instalados foram codificados corretamente, então se um visitante não conseguir fazer login, ele não deverá ter acesso às páginas de administração.
Não funcionou para mim.
Isso funciona, encontrei em um dos meus projetos antigos 🙂
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^95\.154\.22\.86$
RewriteCond %{REMOTE_ADDR} !^77\.243\.128\.133$
RewriteRule ^(.*)$ – [R=403,L]
A opção Rewrite funciona para mim, mas não consigo acessar a página web de administração a partir do localhost
Isso não funciona no Apache 2.4 porque a diretiva order allow,deny foi depreciada.
Em vez disso, você deve usar mod_rewrite.c.
Alguém poderia me ajudar com qual IP devemos inserir no arquivo htaccess. É o IP público que vejo quando pesquiso meu IP no Google, ou é o estático?
Bastante útil em relação à segurança. Recentemente encontrei alguns ataques no meu site wp e estou procurando uma boa solução.
Depois de deixar este sistema em vigor por alguns meses, agora consigo relaxar. Parece funcionar, pois já fui hackeado várias vezes antes.
Eu uso um intervalo de IP em vez de um IP específico no meu .htaccess e funciona fantasticamente. Muito obrigado.
Fico feliz em saber que está funcionando para você. 😀
Obrigado pela informação
Eu estava muito frustrado com meu blog sendo hackeado pela quarta vez.
Eu queria ter 100% de certeza para parar todas as atrações de bots.
Nos últimos dias, tentei muitos plugins, incluindo o askapache, mas ele não está funcionando bem por causa de algum problema com minha hospedagem.
Finalmente consegui uma solução personalizada, coloquei um arquivo .htaccess na pasta wp-admin e o bloqueei por IP para abrir apenas com meu intervalo de IP. e funciona. Agora nenhum bot pode tentar verificar minhas opções e arquivos de configuração. A menos que o bot esteja no meu próprio PC.
: )
Atenciosamente
Mas eu acesso meu site de vários lugares, incluindo meu celular.
O que eu realmente gostaria é restringir o acesso de qualquer lugar fora da América do Norte e isso provavelmente reduziria muito os hacks, não acha?
Sim, ainda está aberto, mas muito menos do que antes.
Alguém tentou algo assim?
Talvez, mas você precisaria integrá-lo a um banco de dados de geolocalização de IP, o que pode ser um exagero para algo assim.
Se você faz login de muitos lugares/IPs, talvez queira considerar algo como Login Lockdown.
O plugin de bloqueio de login também é bom. Limita e depois bane tentativas de login falhas. Algo como IPtables para wp.
http://wordpress.org/extend/plugins/login-lockdown/
Adicionamos isso à nossa pré-instalação para clientes da page.ly, então ele será ativado por padrão após o cadastro.
PS.. adorei o novo design do themelab.com.
Isso parece que pode ser bem eficaz. Especialmente se você faz login de muitos locais diferentes com endereços IP diferentes, pode não ser prático adicionar uma regra .htaccess para cada um.
E fico feliz que você gostou do design!
@Elizabeth: Sem problemas! Me avise como funciona para você.
Muito obrigado por isso.
Tenho experimentado tentativas de exploit em vários dos meus sites WordPress e tenho usado o ht.access para bloquear os IPs individuais. Mas isso parece muito mais eficaz. Espero que funcione bem.
Obrigado Leland.
@badcat: Essa é uma boa pergunta, mas acho que você não precisará repetir o processo, pois esses arquivos .htaccess não estão incluídos na atualização real.
Você precisará repetir este processo após o lançamento de uma nova versão do WordPress?
Ou faria mais sentido negar a pasta wp-admin no arquivo .htaccess da raiz do site, já que ele não é atualizado quando o WP atualiza seu core?