Xác thực hai yếu tố SSH trên địa chỉ bên ngoài


11

Tôi có một máy chủ Ubuntu có cả IP riêng, nội bộ, IP và IP công khai. Tôi muốn thiết lập xác thực hai yếu tố cho SSH ở phía công khai. Điều này có thể không? Tôi đã lên kế hoạch sử dụng Google Authenticator, nhưng cũng sẵn sàng cho những ý tưởng thay thế.


Để biết thông tin, xem thêm unix.stackexchange.com/questions/388384/ trên
FarO

Câu trả lời:


15

Vâng, bạn có thể làm điều này với pam_access.so. Công thức này được lấy từ wiki cho Google Authenticator :

Một công thức PAM hữu ích là cho phép bỏ qua xác thực hai yếu tố khi kết nối bắt nguồn từ một số nguồn nhất định. Điều này đã được hỗ trợ bởi PAM. Ví dụ: mô-đun pam_access có thể được sử dụng để kiểm tra nguồn dựa trên các mạng con cục bộ:

# skip one-time password if logging in from the local network
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth       required     pam_google_authenticator.so

Trong trường hợp này, access-local.conf trông giống như:

# only allow from local IP range
+ : ALL : 10.0.0.0/24
+ : ALL : LOCAL
- : ALL : ALL

Do đó, các lần thử đăng nhập từ 10.0.0.0/24 sẽ không yêu cầu xác thực hai yếu tố.


1
Đó chính xác là những gì tôi đang tìm kiếm. Không chắc tại sao tôi không nhìn thấy nó sớm hơn. Cảm ơn!
Brett F.

4
Michael Hampton Cảm ơn ví dụ này, nhưng điều đó không hiệu quả với tôi vì tôi liên tục nhận được lỗi Quyền bị từ chối (tương tác bàn phím). Tôi đã tìm ra nó bởi vì tôi sử dụng AuthenticationMethods publickey,keyboard-interactivetrong của tôi /etc/ssh/sshd_config. Vì vậy, tôi đã thay đổi cách sau để sửa nó:auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf auth optional pam_google_authenticator.so nullok
Jeremy Laird

@JeremyLaird những dòng đó được munged .. dòng mới ở đâu?
Shadowbq
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.