Cấu hình bảo mật dịch vụ SSH
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
thay đổi Port
/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
2. Chép public lên server
3. Đăng nhập vào server
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
Một số option được thiết lập trong file
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"
Xem thêm các option tại đây, http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/sshd.8?query=sshd&arch=i386
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
Mã hóa file đó bằng lệnh sau
Và sau đó xóa bỏ file backup .
~/.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: