Cấu hình bảo mật dịch vụ SSH

10:27 Unknown 0 Comments

Dịch vụ SSH như là cánh cửa cho bạn vào để quản lí và sử dụng các tài nguyên trên server. Việc bảo mật cho dịch vụ này, cũng giống như việc đặt khóa, xây dựng tường bao, tuyển bảo vệ để bảo vệ ngôi nhà của bạn vậy. Dưới đây là một số thao tác để bạn đảm bảo cho dịch vụ SSH của bạn được an toàn khi đối mặt với Internet.

1. Đổi cổng dịch vụ SSH

Dịch vụ SSH được chạy mặc định ở port 22, nó là một port khá là quen thuộc với các hacker cũng như các công cụ scanner. Để tránh khỏi tình trạng brute force, tương gạch vào cổng chính. Bạn nên đổi port của dịch vụ này sang một số khác.
Để thay đổi cổng bạn chỉnh sửa lại file cấu hình của ssh /etc/ssh/sshd_config
thay đổi Port 22 thành Port Port 2299

2. Bật chức năng đăng nhập xác thực bằng key

1.Tạo key để xác thực
ssh-keygen -b 2048 -t dsa
2. Chép public lên server
ssh-copy-id -i ~/.ssh/id_rsa.pub user@yourhost
3. Đăng nhập vào server
ssh remote-host

3. Tắt chức năng root login

PermitRootLogin no  

4. Tắt chức năng đăng nhập bằng mật khẩu

PasswordAuthentication no  
ChallengeResponseAuthentication no  
UsePAM no  

5. Hạn chế người dùng đăng nhập và IP đăng nhập

DenyUsers  
AllowUsers  
DenyGroups  
AllowGroups  

SSH cho phép bạn giới hạn hoặc cho phép một danh sách người dùng hoặc một group đăng nhập vào hệ thống bằng cách sử dụng các option trên trong file cấu hình.
Ví du cấu hình cho phép user đăng nhập,
AllowUsers hieuht@192.168.10.11 harry  
AllowGroups wheel staff  
Cho phép user hieuht đứng từ IP 192.168.10.11 đăng nhập vào hệ thống, hoặc cho phép user harry đứng từ mọi nơi được phép truy cập vào hệ thống. Những user thuộc group whell hoặc staff được phép truy cập hệ thống. Việc giới hạn user cũng cấu hình tương tự với DenyUsers, DenyGroup.

6. Hạn chế các chức năng của người dùng khi truy cập SSH

Khi người dùng sử dụng authorized_keys để đăng nhập SSH vào hệ thống, bạn có thể chạy một số lệnh khi họ login hoặc bạn giới hạn một số chức năng SSH của họ.
Một số option được thiết lập trong file authorized_keys.
from='hostname1,hostname2,'' - Hạn chế truy cập từ địa chỉ IP cụ thể hoặc một domain nào đó

command='command' - Chạy một lệnh được quy định sau khi người dùng đăng nhập

no-pty - Không tạo một pty cho người dùng (không cho phép tương tác với server qua shell)

no-port-forwarding - Không cho phép sử dụng chức năng port forwarding 

no-user-rc - Tắt chức năng thực thi file ~/.ssh/rc

no-X11-forwarding

permitopen="host:port"

tunnel="n"

no-agent-forwarding

environment="NAME=value"  
Cấu hình file authorized_keys có cấu trúc như sau.
no-pty,command="" ssh-rsa AAAAB3NzaC1yc2EAAA...OFy5Lwc8Lo+Jk=  

7. Mã hóa file ~/.ssh/known_hosts

Khi bạn đăng nhập SSH vào một server nào đó, phía client của bạn sẽ lưu lại các thông tin của server như hostname, IP, key tại đường dẫn ~/.ssh/known_hosts. Để đảm bảo tính riêng tư bạn nên mã hóa file này để tránh khỏi những cặp mắt tò mò cố tình muốn tìm những địa chỉ server mà bạn truy cập.
Mã hóa file đó bằng lệnh sau
ssh-keygen -H -f ~/.ssh/known_hosts
Và sau đó xóa bỏ file backup .
rm ~/.ssh/known_hosts.old

8. Tạo hệ thống cảnh báo đăng nhập9. Giới hạn thời gian khi người dùng không tương tác với server.

Với cấu hình này, khi người dùng ngưng không thao tác trong khoảng thời gian nhất định, người dùng sẽ bị out khỏi hệ thống.
ClientAliveInterval 300  
ClientAliveCountMax 0  
Sau 300s (5 phút) không thao tác lệnh sẽ bị logout khỏi hệ thống.

10. Không cho những user có password rỗng đăng nhập

PermitEmptyPasswords no  

11. Giới hạn số lần đăng nhập sai.

MaxAuthTries 3

0 nhận xét: