Chặn các cuộc tấn công SSH Brute Force trên IPv6


10

Gần đây tôi đã phải làm việc với một số máy chủ có kết nối IPv6 và tôi đã rất ngạc nhiên khi biết rằng fail2ban không có hỗ trợ IPv6, cũng không có denyhosts. Tìm kiếm trên google tôi thấy rằng mọi người thường khuyên bạn nên:

  • Vô hiệu hóa đăng nhập ssh qua IPv6 (không phải là giải pháp cho tôi)
  • chỉ sử dụng xác thực khóa riêng / công khai trên máy chủ, không có xác thực mật khẩu (hoạt động, nhưng rất nhiều cuộc tấn công có thể khiến máy chủ tốn rất nhiều sức mạnh xử lý hoặc thậm chí có thể khiến DDoS không khả dụng)
  • sử dụng ip6tables để chặn các cuộc tấn công liên tiếp từ cùng một IP
  • sử dụng sshguard có hỗ trợ IPv6

Từ những gì tôi đã thu thập được cho đến nay, việc cấm các địa chỉ trong IPv6 khác một chút so với trên IPv4 vì các ISP không cung cấp cho người dùng một địa chỉ duy nhất (/ 128), mà là toàn bộ mạng con (tôi hiện có / 48). Do đó, việc cấm các địa chỉ IPv6 đơn lẻ sẽ không hiệu quả trước các cuộc tấn công. Tôi đã tìm kiếm cao và thấp về chủ đề ip6tables và sshguard chặn các mạng con khi phát hiện tấn công nhưng tôi không thể tìm thấy bất kỳ thông tin nào.

Có ai biết nếu sshguard cấm mạng con trong các cuộc tấn công IPv6 không?
Có ai biết cách tạo cấu hình ip6tables để cấm các mạng con trong các cuộc tấn công IPv6 không?
Hoặc có ai biết cách giảm nhẹ các cuộc tấn công tốt hơn những gì tôi đã tìm thấy không?

PS: Tôi đang sử dụng CentOS 7 trên hệ thống.


3
Để biết thêm thông tin về fail2ban thêm hỗ trợ IPv6: github.com/fail2ban/fail2ban/issues/39 . Có vẻ như họ đang phải đối mặt với một vấn đề với việc chặn mạng con , điều này làm trì hoãn việc thực hiện thêm (có vẻ như ngày càng xa chúng ta thực sự ...).
John WH Smith

Tỷ lệ giới hạn / cấm trong iptables. Thay đổi câu hỏi của bạn cho điều đó và một vài con điếm sẽ trả lời chính xác.

Đây có phải là một vấn đề giả thuyết? Tôi đã xem xét nhật ký các nỗ lực vũ phu từ một vài máy chủ và mỗi một trong số chúng đã được thử qua IPv4. Và tôi chưa thấy bất kỳ máy chủ nào chịu quá tải do những lần thử như vậy khi xác thực mật khẩu bị tắt ở phía máy chủ.
kasperd 18/07/2015

1
@kasperd Tôi có vài nghìn lần thử mỗi ngày trên IPv6 vì vậy, không, đó không phải là vấn đề giả định. Địa chỉ máy chủ là công khai vì nó lưu trữ một trang web, vì vậy đây thực sự là một vấn đề.
DarthRevan13

@ user123418 Tôi sẽ để lại tiêu đề của câu hỏi như bây giờ, tôi thực sự thích một cái gì đó như sshguard vì sự kiểm soát nó so với quy tắc trong ip6tables. Nếu không ai trả lời trong tuần sau thì tôi sẽ thay đổi câu hỏi của mình.
DarthRevan13

Câu trả lời:


4

Để tấn công máy chủ, kẻ tấn công trước tiên phải biết địa chỉ IP của nó. Với IPv6, bạn sẽ có rất nhiều địa chỉ để lựa chọn, việc tìm địa chỉ chính xác bằng cách quét phạm vi IP là không khả thi.

Điều này có nghĩa là bạn chỉ cần gán hai địa chỉ IPv6 khác nhau cho giao diện. Bạn để tên miền của trang web của bạn tiếp tục trỏ đến cùng một địa chỉ IP và bạn chỉ để sshd nghe trên địa chỉ IP mới được gán.

Sau khi thay đổi, việc biết tên miền và địa chỉ IP của trang web của bạn sẽ không cung cấp cho kẻ tấn công bất kỳ quyền truy cập nào vào sshd của bạn.

Tất nhiên bạn sẽ cần một tên máy chủ thứ cấp được sử dụng khi kết nối bằng ssh. Tên máy chủ đó có thể có nhiều entropy hơn địa chỉ IPv6. Ai đó đoán tên máy chủ cho ssh là không thể tưởng tượng được nếu bạn sử dụng 63 ký tự chữ và số.

Nếu ai đó tìm ra địa chỉ IPv6 được sử dụng cho sshd, bạn chỉ cần di chuyển sshd sang địa chỉ IPv6 mới và cập nhật bản ghi AAAA. Sau đó, họ phải bắt đầu lại tất cả.

Nếu bạn lo lắng rằng người dùng ssh hợp pháp có thể rò rỉ tên máy chủ và / hoặc địa chỉ IP, thì bạn có thể tạo một tên máy chủ khác nhau cho mỗi người dùng truy cập bằng ssh. Ban đầu tôi sẽ CNAME tất cả chúng thành một tên máy chủ duy nhất sao cho chỉ có một bản ghi AAAA duy nhất để cập nhật.


Âm thanh tốt hơn những gì tôi hiện đang có, nhưng không hoàn toàn những gì tôi đang tìm kiếm. Dẫu sao cũng xin cảm ơn.
DarthRevan13

0

Tin tốt là fail2ban đã phát hành hỗ trợ cho IPv6 gần đây.

Đối với máy chủ Debian IPv6, tôi khuyên bạn nên làm theo hướng dẫn này .

Đối với máy chủ CentOS IPv6, tôi khuyên bạn nên tải xuống tại đây và sau đó thực hiện các lệnh này thay thế số phiên bản cho phù hợp:

tar xvfj fail2ban-0.11.0.tar.bz2
cd fail2ban-0.11.0
python setup.py install

Hãy chắc chắn rằng một tù cho sshd được bật trong /etc/fail2ban/jail.local , ví dụ:

[sshd]
enabled=1

1
Mặc dù tôi ngưỡng mộ những gì các chàng trai tại fail2ban đã làm, nhưng nó vẫn chưa đủ! Không phải tất cả các tính năng được hỗ trợ bởi giao thức IPv6 theo changelog của họ github.com/fail2ban/fail2ban/blob/0.10/ChangeLog và vẫn không có sự hỗ trợ cho cấm subnet github.com/fail2ban/fail2ban/issues/927 đó là rất quan trọng cho IPv6 vì bất kỳ ISP nào sẽ không chỉ cung cấp một địa chỉ IPv6 cho khách hàng mà là toàn bộ mạng con. Miễn là điều này vẫn đúng, không có máy sản xuất nào nên sử dụng fail2ban ngay bây giờ! Vui lòng thay đổi câu trả lời của bạn để phản ánh điều này, bởi vì trang này được rất nhiều người truy cập.
DarthRevan13
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.