Chạy SSH
trên một cổng thay thế không được tính là bảo mật nữa. Nó chỉ thêm một chút tối nghĩa và thêm một bước phức tạp cho người dùng của bạn. Nó bổ sung thêm các chướng ngại vật cho những người đang tìm cách phá vỡ mạng của bạn, những người đang sử dụng máy quét cổng tự động và không quan tâm nó chạy trên cổng nào.
Nếu bạn muốn tăng cường bảo mật trên một hệ thống cho phép SSH gửi đến từ xa dựa trên internet, hãy kiểm soát người dùng của bạn theo sshd_config
như @Anthon đã chỉ định, sau đó cũng triển khai bảo mật trực tiếp trong PAM.
Tạo hai nhóm, lusers
và rusers
. Thêm người dùng di động từ xa vào rusers
nhóm. Sử dụng mô-đun PAM pam_succeed_if.so để cho phép truy cập vào những người dùng đó. Thêm dòng vào cấu hình pam của bạn cho ssh:
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
Một số mô-đun pam_succeed_if.so có thể yêu cầu bạn sử dụng cú pháp hơi khác nhau, như group = lusers
.
Sau đó, không chỉ sshd
giới hạn người dùng có thể kết nối mà trong trường hợp xảy ra lỗi sshd
, bạn vẫn có sự bảo vệ mà các hạn chế dựa trên PAM đưa ra.
Một bước bổ sung cho người dùng từ xa là buộc sử dụng ssh_keys với cụm mật khẩu. Vì vậy, người dùng cục bộ có thể đăng nhập bằng khóa hoặc mật khẩu, nhưng người dùng từ xa phải có khóa và nếu bạn tạo khóa cho họ, bạn có thể đảm bảo khóa có liên kết cụm mật khẩu. Do đó, giới hạn quyền truy cập vào các vị trí thực sự sở hữu khóa SSH và cụm mật khẩu. Và hạn chế các vectơ tấn công tiềm năng nếu mật khẩu của người dùng được tổng hợp.
Trong sshd_config
:
thay đổi 2 cài đặt:
ChallengeResponseAuthentication yes
và
PasswordAuthentication yes
đến:
ChallengeResponseAuthentication no
và
PasswordAuthentication no
Vì vậy, mặc định bây giờ chỉ cho phép xác thực khóa. Sau đó, đối với người dùng cục bộ, bạn có thể sử dụng match
cài đặt cấu hình để thay đổi mặc định cho người dùng cục bộ. Giả sử mạng riêng cục bộ của bạn là 192.168.1.0/24, hãy thêm vào sshd_config
:
Match Address 192.168.1.0/24
PasswordAuthentication yes
Giờ đây, người dùng cục bộ có thể kết nối với mật khẩu hoặc khóa và người dùng từ xa sẽ buộc phải sử dụng khóa. Tùy thuộc vào bạn để tạo các khóa với cụm từ.
Là một lợi ích bổ sung, bạn chỉ phải quản lý một lần duy nhất sshd_config
và bạn chỉ phải chạy ssh trên một cổng duy nhất, giúp giảm bớt sự quản lý của chính bạn.
chỉnh sửa 2017-01-21 - Hạn chế sử dụng authorized_keys
tệp.
Nếu bạn muốn đảm bảo rằng người dùng không thể tự tạo khóa ssh và sử dụng nó với một authorized_keys
tệp để đăng nhập, bạn có thể kiểm soát điều đó bằng cách đặt một vị trí cụ thể cho sshd sẽ tìm các khóa được ủy quyền.
Trong /etc/ssh/sshd_config
, thay đổi:
AuthorizedKeysFile %h/ssh/authorized_keys
đến một cái gì đó như:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
Chỉ vào một thư mục được kiểm soát mà người dùng không có quyền viết để có nghĩa là họ không thể tạo khóa riêng và sử dụng nó để giải quyết các quy tắc bạn đã đặt.
lusers
nhóm nhưng không trongrusers
nhóm tạo ra một cặp khóa và cập nhật thông tin của họ~/.ssh/authorized_keys
, họ sẽ có thể đăng nhập từ xa.