Cấu hình SSH trên hệ thống Linux được quản lý thông qua hai tệp chính: /etc/ssh/ssh_config (dành cho client) và sshd_config (dành cho server). Tài liệu này tập trung vào các thiết lập quan trọng trong sshd_config.
Các tùy chọn cấu hình nổi bật
-
Cổng kết nối
Thiết lập cổng lắng nghe của dịch vụ SSH (mặc định 22). Nên thay đổi sang giá trị khác không phải 22 để tăng cường bảo mật. Có thể khai báo nhiều cổng bằng cách lặp lại dòng
#Port 2222Port. -
Địa chỉ lắng nghe
Chỉ định địa chỉ IPv4/IPv6 mà SSH sẽ bind. Nên giới hạn chỉ các địa chỉ IP cần thiết thay vì dùng
ListenAddress 192.168.1.1000.0.0.0(tất cả địa chỉ IPv4). -
Phiên bản giao thức
Bắt buộc sử dụng phiên bản SSH 2 (an toàn hơn phiên bản 1).
Protocol 2 -
Khóa máy chủ
Chỉ định đường dẫn tới các cặp khóa dùng xác thực máy chủ. Nên ưu tiên các thuật toán hiện đại như Ed25519.
HostKey /etc/ssh/ssh_host_ed25519_key -
Ghi log hệ thống
Thiết lập kênh log bảo mật. Nhật ký sẽ được lưu tại
SyslogFacility AUTHPRIV/var/log/secure. -
Thời gian chờ đăng nhập
Thiết lập khoảng thời gian cho phép hoàn tất kết nối (mặc định 120s). Nên giảm xuống 30-60s để ngăn tấn công brute-force.
LoginGraceTime 30s -
Chặn đăng nhập root
Tăng cường bảo mật bằng cách cấm đăng nhập trực tiếp tài khoản root.
PermitRootLogin no -
Xác thực bằng mật khẩu
Tắt xác thực mật khẩu khi sử dụng khóa SSH. Nên kết hợp với
PasswordAuthentication noPermitEmptyPasswords nođể chặn tài khoản trống. -
Xác thực DNS
Tắt xác thực DNS để tăng tốc độ kết nối nội bộ. Chỉ bật khi cần kiểm tra tên miền người dùng.
UseDNS no