2010-12-14 51 views
5

Trên trang web của tôi, mức sử dụng GPU cao nhất thực sự là trên trang đăng nhập WordPress, không phải trang chủ. Về cơ bản tôi đã đi đến kết luận rằng nó đang bị tấn công bởi một cuộc tấn công bạo lực, hoặc một cái gì đó tương tự.Cách ngăn chặn các cuộc tấn công trên trang wp-login.php của WordPress

Tôi đã cài đặt plugin ngăn chặn các cuộc tấn công mật khẩu từ bot, nhưng không ngăn bot thực sự truy cập trang ở địa điểm đầu tiên.

Tôi muốn thay đổi vị trí của trang đăng nhập thành một trang như wp-login-here.php hoặc có thể có giải pháp tốt hơn. Các Stealth Plugin có vẻ như nó sẽ làm các trick, nhưng nó không tương thích với các phiên bản gần đây của WordPress. Bất kỳ ý tưởng?

EDIT: Giải pháp thực sự cho vấn đề này là để tôi thực hiện cài đặt sạch WordPress, lần này trong phiên bản được plugin Stealth hỗ trợ. Sau khi cài đặt WP và plugin Stealth trên phiên bản cũ hơn của WP, tôi đã sử dụng tệp .htaccess mà plugin đã tạo và sao chép nó (sau khi thực hiện một vài sửa đổi) cho trang web sản xuất. Lý do tôi chấp nhận câu trả lời tôi đã làm là vì hành vi xấu đã trở thành một plugin tốt, và lời khuyên khác là hữu ích.

+0

đang bảo vệ trang đăng nhập với mật khẩu Apache thêm một tùy chọn Đó là một chút k.? ludgy nếu bạn thay đổi máy tính thường xuyên (bởi vì bạn phải nhập hai mật khẩu) nhưng sẽ cung cấp bảo mật bổ sung –

+0

Tôi đã suy nghĩ về điều đó như một tùy chọn. Làm thế nào tôi sẽ đi về việc thêm một mật khẩu vào một tập tin duy nhất mặc dù (tôi đã chỉ thực hiện nó trên các thư mục trong quá khứ)? – epaps

+0

điều gì có thể xảy ra là bạn không có nhiều lưu lượng truy cập và bạn thường xuyên sử dụng để đăng nhập? có thể tạo lưu lượng truy cập cho trang đăng nhập của bạn ...? – pootzko

Trả lời

4

bad behavior có thể chặn một số địa chỉ IP độc hại được biết đến. nó hoạt động cùng với ProjectHoneyPot và giữ IP xấu khỏi trang web của bạn trước khi nó được tải hoàn toàn ...

cũng có cách để sử dụng hide your login page.htaccess
khóa tất cả mọi người cố gắng đăng nhập nhiều hơn một vài lần như đã chỉ ra bởi Jimmy

và bên cạnh đó có lẽ bạn nên bắt buộc thực hiện những điều sau đây:

  • không sử dụng tài khoản quản trị (tạo khác tài khoản với quyền admin, nhưng với một tên người dùng khác với admin và sau đó loại bỏ các tài khoản quản trị mặc định)
  • force using SSL
  • sử dụng mật khẩu mạnh
+0

Lưu ý rằng mẹo tại liên kết 'ẩn trang đăng nhập của bạn' ở trên sẽ vẫn không bảo vệ 'wp-login.php', có thể được đăng trực tiếp bởi bot. – montrealist

1

tạo quy tắc .htaccess cho thư mục wp-admin và đặt nó vào danh sách bộ IP hoặc kết hợp người dùng/vượt qua. Bạn không muốn bắt đầu hack wordpress nếu bạn có thể tránh nó như là nâng cấp tiếp theo sẽ chỉ hoàn tác các thay đổi của bạn, và thiết lập nó ở mức Apache .htaccess sẽ hiệu quả hơn rất nhiều so với việc cố gắng vá wordpress.

1

Theo đề xuất, nếu bạn đang sử dụng IP tĩnh, bạn có thể sử dụng tệp .htaccess .passwd để hạn chế quyền truy cập vào thư mục quản trị vào danh sách địa chỉ IP đã biết. Trong khi điều này sẽ không ngăn chặn các nỗ lực truy cập, nó sẽ ít nhất là thấp hơn việc sử dụng tài nguyên.

2

Sự cố chỉ giới hạn số lần đăng nhập bằng địa chỉ IP là gì? http://wordpress.org/extend/plugins/limit-login-attempts/

+0

Tôi có thể sai về điều này, nhưng tôi nghĩ rằng vấn đề ở đây là ngay cả khi họ không thể đăng nhập, những gì họ đang làm vẫn khiến trang tải lại. Điều đó có ý nghĩa? – epaps

+0

Nó vẫn tải lại trang. Lưu lượng truy cập là bao nhiêu? – Jimmy

+0

Trang có nghĩa là nhận được 50 lần lưu lượng truy cập của bất kỳ trang nào khác. Và chúng ta đang nói về hàng ngàn ở đây. – epaps

6

Tôi làm cách nào để thêm mật khẩu vào một tệp?

Thêm phần này vào của WP hiện .htaccess:

<FilesMatch "wp-login.php"> 
    AuthName "WordPress Admin" 
    AuthType Basic 
    AuthUserFile /path/to/.htpasswd 
    require valid-user 
</FilesMatch> 
1

Như một sự bổ sung đối với an ninh của bạn, bạn có thể thử WordPress plugin đơn giản này:

http://themext.com/protected-wp-login/

Nó bảo vệ chống lại brute force trang đăng nhập của admin của bạn (bằng cách sử dụng một chìa khóa an toàn trong url).

+1

Cảm ơn, plugin thực sự hữu ích. Tôi đã sử dụng nó để bảo vệ trang đăng nhập wp của mình. – starikovs

0

Tôi đã tạo một plugin cho phép bạn tùy chỉnh URL đăng nhập và cũng ngăn các lệnh $ _POST từ xa bằng cách kiểm tra URL của yêu cầu.

Nó không hoàn thiện với phần còn lại của các URL đăng nhập WP trong thanh công cụ và liên kết mật khẩu bị mất, nhưng nó đã giảm nỗ lực đăng nhập về số không trong vài ngày trong các cuộc tấn công bạo lực năm 2013 vẫn tiếp diễn.

http://wordpress.org/extend/plugins/stealth-login-page/

-2

Tôi dường như đã tìm thấy câu trả lời cho điều này.

Tôi đã đấu tranh với nỗ lực đăng nhập của người Nhật trong một thời gian dài và quyết định thực hiện một thử nghiệm.

Trước hết tôi không sử dụng quản trị làm người dùng quản trị viên của mình. Vì vậy, họ sẽ không nhận được trong vì tất cả các cuộc tấn công được dựa trên tên người dùng "admin".

Tôi thiết lập tài khoản người dùng mà tôi đặt tên là Quản trị viên và đặt mật khẩu thành "12345". Tôi đã chuyển tiếp tài khoản này tới trang html mà tôi gọi là "busted". Lúc đầu, tôi đã rất ngạc nhiên khi các bot vẫn không thể vào được.

Một bot cuối cùng đã có trong hai tuần trước. Tôi đã không có bất kỳ cuộc tấn công kể từ đó. Không có cuộc tấn công nào cả.

Nó có thể là may mắn, nhưng nó cũng có thể đã hoạt động.

+0

Điều này KHÔNG làm việc và RẤT NGUY HIỂM. Vui lòng xóa lời khuyên này. – JoostS

0

của nó có thể cho tôi tấn công brute force

Thêm mã sau đây để dưới cùng của functions.php trong thư mục theme nó sẽ ngăn chặn ping lại yêu cầu.

add_filter('xmlrpc_methods', 'remove_xmlrpc_pingback_ping'); 
function remove_xmlrpc_pingback_ping($methods) { 
unset($methods['pingback.ping']); 

return $methods; 
} 

và thay đổi trang wplogin bởi using the following plugin

1

Để cập nhật khi epaps trên EDIT và trả lời cho câu hỏi tương tự Is there any way to rename or hide wp-login.php?, tôi cũng đã tìm thấy các quy tắc .htaccess tạo ra bởi (nay là dài bị bỏ rơi) Plugin đăng nhập tàng hình là phương tiện ít phức tạp nhất nhưng hiệu quả nhất trong việc ngăn chặn truy cập trực tiếp vào wp-login.php/wp-admin và bảo vệ chống lại các cuộc tấn công khác nhau (đặc biệt là sự đe doạ).

"Giải pháp" khác mà tôi đã đọc yêu cầu chức năng php, thay đổi đối với wp-config.php và .htaccess ghi đè. Hoặc cài đặt plugin khác (cồng kềnh)! Nhiều người trong số này hoặc chỉ chặn/wp-admin/URI (dễ dàng bị lật đổ bằng cách truy cập thẳng đến wp-login.php) hoặc ngắt đăng nhập người nhận xét/khách hàng.

Phiên bản cuối cùng của plugin ẩn đăng nhập là v1.3 và tương thích với phiên bản WordPress 2.3 đến 2.7.1. Ảnh chụp lưu trữ qua Internet cuối cùng từ ngày 15 tháng 10 năm 2011 có thể được tìm thấy here nơi có thể tải xuống stealth-login.1.3.zip. Bạn có thể tải xuống phiên bản WordPress tương thích từ Kho lưu trữ phát hành - https://wordpress.org/download/release-archive/. Thực hiện cài đặt 5 phút nổi tiếng, giải nén plugin đăng nhập tàng hình vào/wp-content/plugins và bây giờ bạn có thể tạo một bộ quy tắc để sử dụng riêng của bạn.

Mỏ như dưới đây và hoạt động hoàn hảo trên WordPress 4.7.4 với WooCommerce 3.0.5. Thay đổi duy nhất tôi thực hiện là thêm điều kiện viết lại trên dòng 12. Nó là cần thiết để ngăn chặn WooCommerce/tài khoản của tôi/khách hàng-đăng xuất khỏi vi phạm (đó là chuyển hướng 302 mà không có /wp-login.php URI - có nghĩa là chuỗi truy vấn trên Lưu ý chuỗi đã được mở để nhận biến wpnonce.

Vì vậy, như đã nói ở trên, đây là giải pháp tốt nhất mà tôi đã tìm thấy - và thậm chí nó có thể được thực hiện để làm việc với WooCommerce vì vậy, đơn giản nhưng rất hiệu quả -. nhờ epaps cho trỏ này ra

RewriteRule ^signout wp-login.php?action=logout&_wpnonce=a3d57642ab&stealth_out_key=ow4hzd5lxudcetbgbfreaox6c1 [L] 
RewriteRule ^signin wp-login.php?stealth_in_key=05gvov4wuuruahpuchpohavitl&redirect_to=https://yourwebsite.com/wp-admin/ [R,L] 
RewriteRule ^admin wp-admin/?stealth_admin_key=f4ji1q6tpwr55s5a0h65clg0qk [R,L] 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/wp-admin 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/wp-login\.php 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/signin 
RewriteCond %{HTTP_REFERER} !^https://yourwebsite.com/admin 
RewriteCond %{QUERY_STRING} !^stealth_in_key=05gvov4wuuruahpuchpohavitl 
RewriteCond %{QUERY_STRING} !^stealth_out_key=ow4hzd5lxudcetbgbfreaox6c1 
RewriteCond %{QUERY_STRING} !^stealth_reg_key=rue2bekyask21pwtegavqbbp5n 
RewriteCond %{QUERY_STRING} !^stealth_admin_key=f4ji1q6tpwr55s5a0h65clg0qk 
RewriteCond %{QUERY_STRING} !^action=logout&redirect_to=https%3A%2F%2Fyourwebsite.com%2Fmy-account%2F&_wpnonce= 
RewriteRule ^wp-login\.php https://yourwebsite.com [L] 
RewriteCond %{QUERY_STRING} ^loggedout=true 
RewriteRule ^wp-login\.php https://yourwebsite.com [L] 
Các vấn đề liên quan