dịch vụ pam (sshd) bỏ qua thử lại tối đa


32

Tôi có vps mà tôi sử dụng để chạy máy chủ web, nó hiện đang chạy máy chủ Ubuntu 12.04. Kể từ vài tuần, tôi liên tục nhận được rất nhiều lỗi trong bảng điều khiển ssh của mình.

2014 Apr 11 08:41:18 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:21 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:24 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:25 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:26 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:29 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:29 vps847 PAM service(sshd) ignoring max retries; 6 > 3

Ai đó có thể vui lòng cho tôi biết những lỗi này có nghĩa là gì. Hoặc ít nhất cho tôi biết làm thế nào để vô hiệu hóa các lỗi này. Nó thực sự gây bất ngờ khi tôi đang làm việc trên ssh và những lỗi này cứ xuất hiện trên màn hình của tôi.

Câu trả lời:


40

PAMđang nói với bạn rằng nó được cấu hình với "retry = 3" và nó sẽ bỏ qua mọi yêu cầu xác thực thêm từ sshd trong cùng một phiên. SSHtuy nhiên sẽ tiếp tục thử cho đến khi nó cạn kiệt cài đặt MaxAuthTries (mặc định là 6).

Có lẽ bạn nên đặt cả hai thứ này (SSH và PAM) thành cùng một giá trị để thử lại tối đa auth.

Đã cập nhật

Để thay đổi hành vi này:

Để sshdbạn chỉnh sửa /etc/ssh/sshd_configvà thiết lập MaxAuthTries 3. Đồng thời khởi động lại máy chủ SSH để cài đặt có hiệu lực.

Đối với PAM, bạn phải tìm cấu hình trong /etc/pam.dthư mục (tôi nghĩ đó là common-passwordtệp trong Ubuntu), bạn phải thay đổi retry=giá trị.

Lưu ý: Tôi cũng đề nghị kiểm tra câu trả lời của Peter Hommel về lý do của những yêu cầu này vì có thể SSH của bạn đang bị ép buộc.


Cảm ơn bạn, sự cố đã được khắc phục bằng cách thêm MaxAuthTries 3cấu hình ssh và sau đó khởi động lại máy chủ.
Jerodev

41

Mặc dù các câu trả lời khác là chính xác trong việc loại bỏ thông báo lỗi bạn nhận được, hãy xem xét rằng thông báo lỗi này có thể chỉ là một triệu chứng của một vấn đề tiềm ẩn khác.

Bạn nhận được những tin nhắn này vì có nhiều lần thử đăng nhập thất bại thông qua ssh trên hệ thống của bạn. Có thể có ai đó đang cố gắng vũ phu vào hộp của bạn (là trường hợp khi tôi nhận được tin nhắn tương tự trên hệ thống của mình). Đọc của bạn var/log/auth.logđể nghiên cứu ...

Nếu đây là trường hợp, bạn nên cân nhắc cài đặt một công cụ như 'fail2ban' ( sudo apt-get install fail2bantrên Ubuntu). Nó tự động đọc các tệp nhật ký của hệ thống của bạn, tìm kiếm nhiều lần đăng nhập thất bại và chặn các máy khách độc hại trong một thời gian có thể định cấu hình thông qua iptables ...


4
Đây là một nhận xét rất hay, tôi đã cập nhật câu trả lời của tôi với một ghi chú để đọc bạn trả lời quá cho bất cứ ai có thể đi qua điều này.
phoops

5

Có vẻ như phân tích trên không hoàn toàn chính xác. Dường như không có tùy chọn retry = để xác thực pam (tôi đã tìm thấy một cho pam_cracklib, nhưng điều đó chỉ liên quan đến việc thay đổi mật khẩu trong phần "mật khẩu", không xác thực trong phần "auth" của pam). Thay vào đó, pam_unix chứa số lần thử lại tối đa là 3. Sau 3 lần thử lại, pam trả về mã lỗi PAM_MAXRETRIES để thông báo cho sshd về điều này.

sshd thực sự nên ngừng cố gắng trong trường hợp này, bất kể MaxAuthTries của chính nó. Nó không, mà tôi nghĩ là một lỗi (mà tôi vừa báo cáo với openssh ).

Cho đến khi lỗi đó được khắc phục, có vẻ như việc đặt MaxAuthTries thành <= 3 là cách duy nhất để ngăn thông báo này hiển thị.


lỗi dường như đã được sửa với phiên bản 7.3p1
Dennis Nolte

3

Máy khách ssh có thể cố gắng xác thực bằng một hoặc nhiều khóa. Bất kỳ khóa nào không được liệt kê trong ủy quyền_key sẽ thất bại, tiêu thụ một trong những lần thử lại của sshd. Máy khách sẽ thử mọi khóa ssh mà nó có cho đến khi một lần thành công hoặc đều thất bại, vì vậy thật tốt khi sshd cho phép bạn thử một vài khóa.

Nếu không có khóa nào khớp, sshd có thể cho phép bạn thử mật khẩu. Mỗi lần thử này cũng tiêu tốn một lần thử lại được phép của sshd. Nhưng, nó cũng tiêu thụ một trong những lần thử lại được phép của PAM.

Vì vậy, sự kết hợp của 6 ssh auth thử và 3 pam auth thử là một điều tốt: có nghĩa là ssh sẽ cho phép 6 auth thử tổng cộng (khóa hoặc mật khẩu) nhưng chỉ có 3 mật khẩu thử.

Như những người khác đã nói, nếu bạn thường thấy những điều này trong nhật ký của mình, ai đó đang cố gắng vũ trang theo cách của họ vào hệ thống của bạn. Cân nhắc sử dụng fail2ban để chặn hoàn toàn các gói từ địa chỉ IP mà các nỗ lực này bắt nguồn.


1

Sau khi nâng cấp từ Debian 6 lên Debian 7, tôi gặp rắc rối tương tự. Đột nhiên những lỗi sshd xuất hiện trong bảng điều khiển của tôi.

2014 Oct 15 13:50:12 vps456 PAM service(sshd) ignoring max retries; 6 > 3
2014 Oct 15 13:50:17 vps456 PAM service(sshd) ignoring max retries; 6 > 3
2014 Oct 15 13:50:18 vps456 PAM service(sshd) ignoring max retries; 6 > 3

Trong trường hợp của tôi, vấn đề là nó rsyslogđã không được cài đặt nữa sau khi nâng cấp Debian.

Sau khi cài đặt rsyslog, các lỗi này đã biến mất khỏi bảng điều khiển của tôi: apt-get install rsyslog


3
Điều này chỉ làm cho chúng xuất hiện ở một nơi khác thay vì bàn điều khiển. Câu trả lời của tôi khắc phục nguyên nhân lỗi do cấu hình sai SSH / PAM sau khi nâng cấp.
phoops

-1

Chắc chắn nhận được những thông báo trên bảng điều khiển của bạn có thể gây phiền nhiễu, nhưng khi tôi thấy trong các tệp nhật ký của mình ngày hôm qua tôi đã có 987 lần thử đăng nhập gốc không thành công đến từ một địa chỉ IP ở Trung Quốc, hoặc 2670 từ một số dịch vụ đám mây ở California, hoặc ... nhiều những người khác, tôi không lo lắng. Người dùng root không được phép đăng nhập tất cả trên máy của tôi. Cho dù có bao nhiêu cố gắng.

Nếu họ bắt đầu thử tên người dùng có thể đăng nhập, đó sẽ là một vấn đề khác, nhưng nếu ai đó có mật khẩu tốt, tôi cũng không thấy rủi ro ở đó. Mật khẩu đăng nhập (không giống như khóa mã hóa) chỉ có thể được thử rất nhanh.

Sử dụng một cái gì đó như fail2ban có vẻ phức tạp không cần thiết mà không mua bất cứ thứ gì (nếu bạn có mật khẩu tốt) và sự phức tạp có hại cho bảo mật. Nỗ lực điều chỉnh là thứ mà sshd nên thực hiện, không phải là thứ cần có một số tiện ích bổ sung ... và sshd thực hiện các nỗ lực điều tiết. Tốt

-kb, Kent chỉ sử dụng mật khẩu tốt và không bao giờ tái chế giữa các trang web khác nhau.


2
Sử dụng khóa ssh và vô hiệu hóa mật khẩu thậm chí còn tốt hơn trong việc ngăn chặn các cuộc tấn công vũ phu thành công.
HBruijn

Có, nhưng sau đó vấn đề chuyển sang bảo vệ các phím ssh của bạn. Họ ở đâu? Chúng có được mã hóa không? Làm thế nào tốt một chìa khóa bảo vệ họ? Nếu mật khẩu không thể bị bẻ khóa trong X năm thử, thì mật khẩu đó không thể bị bẻ khóa trong X năm thử, bạn cần "tốt hơn" để làm gì? Tôi dành rất nhiều thời gian để quản lý mật khẩu của mình và tôi có thể nhập chúng, nhiều trong số chúng tôi nhớ. Nhưng một loạt các phím ssh? Cần một nơi an toàn để giữ chúng.
Kent Borg

2
Brute - buộc một mật khẩu (thường dài dưới 20 ký tự và thường được chọn quá tệ) đơn giản hơn nhiều so với việc buộc một khóa riêng 1024 bit (đơn giản hóa tương đương với mật khẩu 128 ký tự) để có quyền truy cập thông qua SSH. Chúng ta hãy so sánh táo với táo. - - Trừ khi bạn là một thằng ngốc hoàn chỉnh (ví dụ: lưu trữ khóa riêng của bạn trong github công khai của bạn), việc truy cập khóa ssh riêng của bạn rất khó khăn vì không cần phải rời khỏi máy trạm của bạn. Khi khóa riêng của bạn bị xâm phạm, chúng tôi không còn tham gia vào các cuộc tấn công ngẫu nhiên nữa, nhưng bước vào vương quốc của các cuộc tấn công được nhắm mục tiêu ...
HBruijn

@Kent bạn có biết mật khẩu có thể bảo vệ bạn các khóa SSH không? Ngoài ra, bạn nói fail2ban là không cần thiết nhưng tiếp tục đề xuất rằng SSH nên tự thực hiện tính năng này. Ngoài ra, nếu bạn không chặn các yêu cầu, họ có thể DDoS hệ thống của bạn dễ dàng hơn nhiều.
phoops
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.