Thông báo lỗi tùy chỉnh cho sshd


8

Có thể đặt thông báo lỗi tùy chỉnh cho người dùng bị từ chối truy cập máy chủ không? Thực tế, tôi chỉ muốn hiển thị thông báo này nếu người dùng bị từ chối do bộ lọc IP được đặt sshd_config. Nhưng một thông báo lỗi toàn cầu sẽ đủ.

Câu trả lời:


6

Bằng "thông báo lỗi" Tôi tin rằng bạn có nghĩa là một chuỗi văn bản được hiển thị bởi chương trình máy khách. Từ "tin nhắn" có một số ngữ cảnh trong giao thức xác thực SSH RFC tôi sẽ tham khảo sau nhưng tôi không nghĩ đó là ý nghĩa mà bạn đang sử dụng.

Tôi tin rằng bạn đang nghĩ SSH là một cái gì đó giống như TELNET, nơi các chuỗi văn bản tùy ý được gửi bởi trình nền của máy chủ sẽ được hiển thị bởi máy khách. SSH sử dụng giao thức xác thực chuyển các tin nhắn được mã hóa dưới dạng giá trị nhị phân qua lại giữa máy khách và máy chủ. Một trong những thông báo được mã hóa này, "SSH_MSG_USERAUTH_BANNER", có thể được sử dụng để hướng dẫn khách hàng hiển thị các chuỗi văn bản tùy ý (nếu được chọn) nhưng bạn phải sửa đổi trình nền SSH của mình để gửi chúng vào thời điểm thích hợp. Tôi không tin rằng OpenSSH có bất kỳ chức năng tích hợp nào để gửi tin nhắn SSH_MSG_USERAUTH_BANNER trong các điểm tùy ý trong quy trình xác thực.

Tôi muốn hỏi tại sao bạn muốn cung cấp cho kẻ tấn công từ xa bất kỳ thông tin bổ sung nào về lý do tại sao xác thực của chúng không thành công. Họ biết rằng nó đã thất bại vì ứng dụng khách SSH của họ nhận được và phản ứng với thông báo được mã hóa từ daemon SSH báo hiệu sự thất bại.


1

EDIT: Evan Anderson gõ nhanh hơn tôi và dường như xác nhận rằng tin nhắn không thể tùy chỉnh trên kích thước máy chủ.

Bạn có thể chỉ định một tệp biểu ngữ trong sshd_config. Biểu ngữ sẽ được hiển thị cho tất cả người dùng trước lời nhắc đăng nhập và nói rằng chỉ đăng nhập từ các tên miền và địa chỉ nhất định mới được phép.

SSH có thể chuyển đăng nhập ra lệnh unix / bin / login. Tùy thuộc vào hệ điều hành của bạn, bạn có thể có một tùy chọn trong đó để tùy chỉnh lời nhắc và lỗi không?

Bất cứ điều gì khác tôi có thể nghĩ đến có lẽ có nghĩa là chỉnh sửa mã và biên dịch lại. Và có thể thông báo lỗi không được gửi từ máy chủ đến máy khách dưới dạng chuỗi mà là mã, để ngăn kẻ tấn công thu thập thông tin. (Nếu đó là một chuỗi và có thể tùy chỉnh, ai đó sẽ đặt nó thành "Đăng nhập thất bại. OpenSSH_3.7_p2 21032004")


0

Điều này sẽ không hoạt động cụ thể cho bộ lọc ip trong sshd_config, nhưng nó sẽ hoạt động cho mọi điều khiển truy cập được PAM triển khai bằng cách sử dụng pam_echo.so.

Ví dụ:

account [success=2 default=ignore] pam_lastlog.so inactive=30
account optional pam_echo.so file=/path/to/lastlog_error_message.txt
account requisite pam_deny.so
account ...

Trong trường hợp này nếu một người dùng được xác thực đã không đăng nhập trong vòng ba mươi ngày qua, nội dung của /path/to/lastlog_error_message.txtnó sẽ được lặp lại theo tiêu chuẩn trước khi kết nối SSH bị đóng. Nếu họ đã vượt qua kiểm tra từ pam_lastlogđó thì việc đánh giá sẽ bỏ qua pam_echovà các pam_denyyêu cầu để tiếp tục đánh giá các mô-đun PAM còn lại.

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.