Làm thế nào chúng ta có thể hạn chế tác động của đầu dò ssh?


13

Máy chủ web của tôi liên tục bị tấn công bởi các địa chỉ IP khác nhau. Họ thử năm mật khẩu và sau đó thay đổi địa chỉ IP.

Tôi đã thực hiện nhiều lần khóa khác nhau như sử dụng khóa ssh và không cho phép mật khẩu và không cho phép đăng nhập root từ xa.

Có điều gì tôi có thể làm để thoát khỏi những nỗ lực tấn công này không? Không, tôi có nên phòng thủ cụ thể không?


1
Gắn cờ cho việc di chuyển sang bảo mật. Trong đó có thêm một chút về chủ đề
Rory Alsop

1
@Rory Có một sự khác biệt giữa "thêm một chút về chủ đề người khác" và "ngoài chủ đề ở đây" - có vẻ như khá rõ ràng về chủ đề ở đây
Michael Mrozek

Đừng lo lắng @Michael. Có một ping từ Gilles đến và nhìn vào nó vì nó có thể là không chính thức ở đây.
Rory Alsop

@Rory Ok, tôi sẽ hỏi anh ấy về điều đó; anh ấy thường khá giỏi trong việc thuyết phục tôi một cái gì đó tôi nghĩ là chủ đề {off, on} thực sự là chủ đề {on, off}
Michael Mrozek

1
Câu hỏi của tôi dường như đã được thay đổi ngoài sự công nhận. Trong câu hỏi ban đầu của tôi, tôi đã thực sự cố gắng tìm hiểu xem mọi trang web có gặp phải các cuộc tấn công vũ phu hay không - đó là sự thật của cuộc sống. Điều này đã được Matteo trả lời với "Đây thực sự là một thực tế của cuộc sống." Phần thứ hai của câu hỏi là hỏi tôi có thể làm gì để chủ động ngăn chặn các cuộc tấn công này ngoài việc đưa ra phòng thủ . Đây sẽ là một câu hỏi phụ có liên quan nếu chỉ một số trang web nhất định phải chịu các cuộc tấn công vũ phu. Nó đã được Bruce trả lời với ý tưởng tarpit của mình. Tôi đã không thực sự yêu cầu lời khuyên phòng thủ.
JW01

Câu trả lời:


14

Nó thực sự là một thực tế của cuộc sống. Bạn có thể cài đặt các công cụ để lọc các máy chủ đang tấn công bạn sau một vài lần thất bại.

Denyhosts phân tích các tệp nhật ký của bạn và tự động thêm kẻ tấn công vào /etc/hosts.denytệp của bạn .

Kiểm tra tài liệu về cách cấu hình nó cho nhu cầu của bạn.

Cập nhật : một số điểm quan trọng được đề xuất trong các ý kiến

  • hãy chắc chắn định cấu hình đúng các công cụ như Denyhost vì bạn có thể tự khóa (ví dụ: bạn có thể định cấu hình máy hoặc mạng không bao giờ được lọc)

  • Denyhosts không tăng bảo mật hệ thống của bạn: nó chỉ lọc các cuộc tấn công ở cấp IP (nó có thể giảm tải cho các máy nhỏ và giảm kích thước của tệp nhật ký nhưng không có gì hơn)


1
Aaah. Tôi đã bắt đầu nghĩ rằng tôi là đặc biệt. Cảm ơn đã đặt tôi thẳng.
JW01

Mở rộng trên Matteo, câu hỏi của bạn gần như được trả lời chính xác refs Q1.3 denyhosts.sourceforge.net/faq.html#1_0
whoami

@whoami Cảm ơn các liên kết, một bản tóm tắt tốt đẹp. Mặc dù một điều luôn luôn xuất hiện trong đầu tôi khi tôi thấy việc sử dụng một mẹo cổng khác là ' làm sao bạn biết rằng cổng thay thế mà bạn chọn chưa được sử dụng bởi một thứ khác? '
JW01

1
Hãy cẩn thận với Denyhost và các công cụ tương tự, vì chúng giới thiệu sự phức tạp bổ sung, tức là chúng có thể tự tạo ra các vấn đề bảo mật. bình luận thứ 2 về unix.stackexchange.com/questions/2942/ từ
maxschlepzig

1
Ngoài ra, hãy cẩn thận với Denyhost vì bạn có thể tự khóa máy của mình. Một đơn giản apt-get install denyhostsđã khiến tôi bị khóa khỏi máy của tôi.
Naftuli Kay

15

Tôi đã làm theo các hướng dẫn này để thêm độ trễ 7 giây cho mỗi lần đăng nhập SSH mật khẩu sai. Tôi đã biến sshd của mình thành một "tarpit" cho các máy quét vũ phu.

Tôi cũng nên thêm rằng tôi đã sửa đổi, tarpit sshd đăng nhập các mật khẩu không thành công. Điều này có thể không hoàn toàn đạo đức, vì nó cung cấp cho người dùng root xem những gì người dùng thông thường nhập sai mật khẩu của họ, nhưng vì tôi là người dùng "thực sự" duy nhất, tôi cho rằng điều đó ổn.

Tôi không có nó chạy trên một cổng không chuẩn, vì khía cạnh "tarpit" sẽ không lãng phí thời gian của bất cứ ai.


Ngoài ra, sử dụng cổng không chuẩn và sử dụng khóa thay vì mật khẩu. Sau đó, họ gần như không có hy vọng (với điều kiện là họ không nhận được chìa khóa, dù sao tất cả đều phải được mật khẩu).
Callum Rogers

Đây là một câu trả lời hay bởi vì nó có một chút cách tiếp cận 'tấn công' thay vì hoàn toàn là 'phòng thủ' mà tôi nghĩ thêm vào đạo đức.
JW01

9

Nếu chỉ một số ít người cần SSH vào hệ thống thì hãy xem xét chuyển SSH sang một cổng không chuẩn (ví dụ: 6422, 8080, v.v.) Điều đó một mình sẽ làm giảm đáng kể số lần thử đăng nhập (và có thể bảo vệ bạn khỏi một số chưa được vá SSH khai thác sâu dựa trên, ví dụ).


3
+1 Khá hữu ích vì nó hạn chế sự phiền toái, nhưng đừng nhầm điều này với biện pháp bảo mật - đây là tương đương gần với cửa màn hình chống muỗi hơn là khóa bảo mật.
Piskvor rời khỏi tòa nhà

1
+1 Đây cũng là một tiết kiệm tài nguyên máy chủ.
Xeoncross

6

Đồng tình với câu trả lời của @ Matteo; những gì bạn nhìn thấy về cơ bản là hàng ngàn hệ thống zombie đang thực hiện một cuộc tấn công vũ phu phân tán vào máy chủ của bạn bởi vì có một trang web đang chạy trên đó, có nghĩa là có thể có những người dùng có tài khoản đăng nhập có thể đoán được Nỗ lực tối thiểu từ một phần của kịch bản kiddie - anh ta có một chương trình ra lệnh cho hàng ngàn thây ma thực hiện những nỗ lực tàn bạo trên vài trăm máy chủ trang web cùng một lúc và chỉ cần lập một danh sách các kết quả thành công.

Tương tự, đôi khi bạn có thể thấy rất nhiều hoán vị của "http://your.web.host/phpmyadmin/" trong các /var/log/apache2/access.logtệp của bạn ; đây là các bản quét tự động cho các cách thiết lập PHPMyAdmin phổ biến nhất và sẽ thử một số khai thác đã biết nếu tìm thấy (đây, tình cờ, là lý do tại sao tôi bắt đầu nói với khách hàng vui lòng sử dụng trang web PMA do cá nhân tôi thiết lập và luôn cập nhật thay vì cài đặt phiên bản của riêng họ và quên cập nhật phiên bản, nhưng giờ chúng tôi đang tiếp tục).

Ngoài việc gửi lệnh gốc, nó thậm chí còn không tốn thời gian hay băng thông; Đó là lửa và quên đi.

Một phần mềm rất hữu ích khác cho các tình huống như thế này là fail2ban , sử dụng iptables để chặn các nỗ lực kết nối sau nhiều lần đăng nhập sai rõ ràng hoặc các nỗ lực khai thác khác.


4

Hãy thử cấu hình Fail2ban . Nó cung cấp một cách rất linh hoạt để tìm kiếm các lần thử thất bại và nó có các mẫu cho SSH, HTTP và các dịch vụ phổ biến.

Fail2ban sẽ cập nhật iptables theo hành động của bạn .. Tôi thích nó.


3

Bạn có thể sử dụng IPTABLES để dừng lưu lượng mà không cần chạy daemon như Fail2Ban hoặc Denyhosts.

#  Allows SSH connections (only 4 attempts by an IP every 3 minutes, drop the rest to prevent SSH attacks)
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

2

Nếu bạn có thể quản lý nó, tôi thấy cách tốt nhất để xử lý những thứ như thế này là sử dụng VPN. Theo cách đó, điều duy nhất họ có thể nhắm mục tiêu là VPN. Không nên có bất kỳ dịch vụ nào mở ra toàn thế giới, ngoại trừ những dịch vụ cần thiết cho "mọi người" truy cập, chẳng hạn như máy chủ web của bạn. Mọi thứ khác nên bị chặn bởi tường lửa. Bây giờ điều duy nhất bạn thực sự phải lo lắng về việc bảo mật là VPN của bạn. Nếu bạn có thể, hãy lấy IP tĩnh cho các máy tính bạn quản lý máy chủ của mình và khóa VPN của bạn xuống địa chỉ IP cụ thể đó. Đây thực sự là cách duy nhất để ngăn chặn mọi người cố gắng phá vỡ mật khẩu.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.