Chỉ cho phép xác thực mật khẩu đến máy chủ SSH từ mạng nội bộ


22

Tôi có máy chủ OpenSSH 5.9p1 chạy trên Ubuntu Precise 12.04, chấp nhận kết nối từ cả mạng nội bộ và Internet. Tôi muốn yêu cầu xác thực khóa chung cho các kết nối từ Internet, nhưng chấp nhận xác thực khóa chung hoặc mật khẩu cho các kết nối từ mạng nội bộ. Tôi có thể định cấu hình OpenSSH để thực hiện việc này không?

Câu trả lời:


34

Lệnh Matchtrong /etc/ssh/sshd_configcho phép bạn áp dụng có chọn lọc các chỉ thị cấu hình. Một trong những tiêu chí phù hợp có sẵn là địa chỉ nguồn của kết nối và do đó, điều này có thể được sử dụng để thực hiện những gì bạn muốn. Bạn có thể tắt xác thực mật khẩu theo mặc định, sau đó kích hoạt nó cho các kết nối từ dải IP mạng bên trong. (Lưu ý rằng bạn cũng muốn tắt ChallengeResponseAuthenticationđể ngăn mật khẩu được sử dụng.) Ví dụ này cho phép xác thực mật khẩu từ tất cả các dải IP riêng RFC1918. Xem trang chủ sshd_config để biết thêm chi tiết.

PasswordAuthentication no
ChallengeResponseAuthentication no

Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
    PasswordAuthentication yes

Lưu ý rằng khối Kết hợp phải được thêm vào cuối tệp nếu không mọi thứ tiếp theo sẽ được khớp cho đến khối Kết hợp tiếp theo. Vị trí xấu của khối Match có thể khiến không thể kết nối.


3
Xin lưu ý: nếu bạn thực hiện việc này và chuyển SSH từ một số máy có thể truy cập công khai (jumphost) sang một máy có cấu hình trên (máy chủ nội bộ), bạn vẫn có thể tự mở để tấn công vì IP nguồn của jumphost sẽ là địa chỉ RFC1918 và cho phép xác thực mật khẩu đến máy chủ nội bộ của bạn.
c4urself
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.