Giải Thích Các Thông Số Trong File Config SSH

SSH, viết tắt của Secure SHell, là một giao thức điều khiển từ xa cho phép người dùng kiểm soát và chỉnh sửa server từ xa thông qua internet. Dịch vụ được tạo ra nhằm thay thế cho trình telnet vốn không có mã hóa và sử dụng kỹ thuật cryptographic để đảm bảo tất cả giao tiếp gửi tới và gửi từ server từ xa diễn ra trong tình trạng mã hóa. Nó cung cấp thuật toán để chứng thực người dùng từ xa, chuyển input từ client tới host, và relay kết quả trả về tới khách hàng.

Ở bài viết này, mình sẽ giải thích cho các bạn ý nghĩa của các thông số trong file cấu hình dịch vụ SSHD (khi nói SSHD, ta hiểu là đang nói tới SSH server, còn SSH thì là SSH client). Từ đó, ta có thể tự tùy chỉnh cấu hình dịch vụ SSHD để đảm bảo chỉ những người dùng có phận sự được phép truy cập vào server.

Dưới đây là một file cấu hình dịch vụ SSHD mẫu (mình sẽ lược bỏ một số dòng thông tin trong file cho gọn):

#Port 22

#AddressFamily any

#ListenAddress 0.0.0.0

#ListenAddress ::

HostKey /etc/ssh/ssh_host_rsa_key

#HostKey /etc/ssh/ssh_host_dsa_key

HostKey /etc/ssh/ssh_host_ecdsa_key

HostKey /etc/ssh/ssh_host_ed25519_key

#RekeyLimit default none

#SyslogFacility AUTH

SyslogFacility AUTHPRIV

#LogLevel INFO

#LoginGraceTime 2m

PermitRootLogin no

#StrictModes yes

#MaxAuthTries 6

#MaxSessions 10

PubkeyAuthentication no

AuthorizedKeysFile      .ssh/authorized_keys

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none

#AuthorizedKeysCommandUser nobody

#HostbasedAuthentication no

#IgnoreUserKnownHosts no

#IgnoreRhosts yes

#PasswordAuthentication yes

#PermitEmptyPasswords no

PasswordAuthentication no

#ChallengeResponseAuthentication yes

ChallengeResponseAuthentication no

#KerberosAuthentication no

#KerberosOrLocalPasswd yes

#KerberosTicketCleanup yes

#KerberosGetAFSToken no

#KerberosUseKuserok yes

GSSAPIAuthentication yes

GSSAPICleanupCredentials no

#GSSAPIStrictAcceptorCheck yes

#GSSAPIKeyExchange no

#GSSAPIEnablek5users no

UsePAM yes

#AllowAgentForwarding yes

#AllowTcpForwarding yes

#GatewayPorts no

X11Forwarding yes

#X11DisplayOffset 10

#X11UseLocalhost yes

#PermitTTY yes

#PrintMotd yes

#PrintLastLog yes

#TCPKeepAlive yes

#UseLogin no

#UsePrivilegeSeparation sandbox

#PermitUserEnvironment no

#Compression delayed

ClientAliveInterval 300

ClientAliveCountMax 3

#ShowPatchLevel no

UseDNS no

#PidFile /var/run/sshd.pid

#MaxStartups 10:30:100

#PermitTunnel no

#ChrootDirectory none

#VersionAddendum none

#Banner none

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES

AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE

AcceptEnv XMODIFIERS

Subsystem       sftp    /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis

#Match User anoncvs

#       X11Forwarding no

#       AllowTcpForwarding no

#       PermitTTY no

#       ForceCommand cvs server

Match Address 125.212.220.68,123.30.136.124

PasswordAuthentication yes

X11Forwarding no

PermitRootLogin yes

RSAAuthentication yes

PubkeyAuthentication yes

Giải thích:

1. Port Quy định port mà dịch vụ SSHD sẽ lắng nghe. Mặc định: 22.
2. AddressFamily Quy định loại IP address mà dịch vụ SSHD sẽ dùng. Các giá trị khả dụng: any, inet (IPv4), inet6 (IPv6). Mặc định: any.
3. ListenAddress Quy định địa chỉ mà dịch vụ SSHD sẽ lắng nghe. Các giá trị khả dụng:

host|IPv4_addr|IPv6_addr

host|IPv4_addr:port

[host|IPv6_addr]:port

4. HostKey Quy định file chứa private host key được sử dụng bởi dịch vụ SSHD. Khi ta ssh tới server lần đầu, ta sẽ lưu public key của server về máy tính. Ở các lần ssh sau, ssh client sẽ ghép cặp public key trên máy tính với private key trên server để xác định đang ssh tới đúng server trước đó.
5. RekeyLimit Quy định số lượng dữ liệu có thể được truyền đi trước khi session key được đàm phán lại.
6. SyslogFacility Log của dịch vụ SSHD sẽ được xử lý bởi syslog, thông số này quy định facility nào trong cấu hình của syslog sẽ xử lý log. Mặc định: AUTHPRIV.
7. LogLevel Quy định mức độ chi tiết của log. Mặc định: INFO.
8. LoginGraceTime Quy định khoảng thời gian sẽ ngắt kết nối nếu không login thành công.
9. PermitRootLogin Quy định cho phép người dùng ssh bằng user root của hệ thống hay không.
10. StrictModes Tính năng không cho phép sử dụng private key và public key nếu các file này chưa đạt tiêu chuẩn bảo mật nhất định (owner, permission…).
11. MaxAuthTries Quy định số lần thử truy cập tối đa của mỗi phiên kết nối. Nếu số lần thử thất bại lớn hơn một nửa số lần thử tối đa, phiên đó sẽ được ghi log lại.
12. MaxSessions Quy định số session tối đa được mở cùng lúc trong một phiên ssh ghép kênh (multiplexed ssh session).
13. PubkeyAuthentication Quy định cho phép sử dụng public key để chứng thực hay không.
14. AuthorizedKeysFile Quy định file chứa public key được dùng cho việc chứng thực.
15. AuthorizedPrincipalsFile Quy định file chứa các principle name được phép chứng thực bằng chứng chỉ (certificate).
16. AuthorizedKeysCommand Quy định chương trình được dùng để tra cứu public key của user.
17. AuthorizedKeysCommandUser Quy định user sẽ chạy chương trình được cấu hình ở phần AuthorizedKeysCommand.
18. HostbasedAuthentication Quy định việc chứng thực bằng rhosts hay /etc/hosts.equiv  kết hợp với public key có được cho phép hay không.
19. IgnoreUserKnownHosts Quy định việc dịch vụ SSHD có bỏ qua file ~/.ssh/known_hosts trong suốt quá trình RhostsRSAAuthentication hay HostbasedAuthentication hay không. Mặc định: no
20. IgnoreRhosts Quy định việc file .rhosts và .shosts sẽ không được dùng trong RhostsRSAAuthentication hay HostbasedAuthentication.
21. PermitEmptyPasswords Khi tính năng PasswordAuthentication được bật (yes), thông số này quy định việc cho phép người dùng login vào server bằng user không có password hay không. Mặc định: no.
22. PasswordAuthentication Quy định cho phép sử dụng password để chứng thực hay không.
23. ChallengeResponseAuthentication Quy định việc cho phép chứng thực bằng Challenge – Response hay không. Mặc định: yes.
24. KerberosAuthentication Quy định việc password được cung cấp bởi người dùng để PasswordAuthentication có được xác thực tiếp bởi Kerberos KDC hay không. Mặc định: no.
25. KerberosOrLocalPasswd Nếu chứng thực bằng password thông qua Kerberos thất bại, thông số này quy định password sẽ được xác thực lại bằng cơ chế khác ví dụ như dùng /etc/passwd. Mặc định: yes.
26. KerberosTicketCleanup Quy định việc có tự động xóa các ticket cache của user khi user logout hay không. Mặc định: yes.
27. KerberosGetAFSToken
28. KerberosUseKuserok Quy định việc có tra cứu file .k5login cho tên định danh của user hay không. Mặc định: yes.
29. GSSAPIAuthentication Quy định cho phép sử dụng GSSAPI để chứng thực hay không.
30. GSSAPICleanupCredentials Quy định việc có tự động xóa cache thông tin đăng nhập của user khi user logout hay không. Mặc định: yes.
31. GSSAPIStrictAcceptorCheck
32. GSSAPIKeyExchange Quy định việc có cho phép trao đổi khóa dựa vào GSSAPI hay không.
33. GSSAPIEnablek5users Quy định việc có tra cứu file .k5users cho việc quản lý truy cập bằng chứng thức GSSAPI hay không.
34. UsePAM Bật giao diện Pluggable Authentication Module. Nếu thông số này đặt là “yes”, dịch vụ sẽ bật chứng thực PAM sử dụng ChallengeResponseAuthenticationPasswordAuthentication thêm vào tài khoản PAM và session module processing cho tất cả các loại chứng thực.
35. AllowAgentForwarding Quy định cho phép chuyển tiếp ssh-agent hay không. Mặc định: yes.
36. AllowTcpForwarding Quy định cho phép chuyển tiếp TCP hay không. Mặc định: yes.
37. GatewayPorts Quy định việc máy từ xa có được phép kết nối tới các port chuyển tiếp đến client hay không.
38. X11Forwarding Quy định cho phép chuyển tiếp X11 hay không. Mặc định: no.
39. X11DisplayOffset Quy định con số hiển thị đầu tiên khả dụng cho việc chuyển tiếp X11 của dịch vụ SSHD. Điều này giúp cho dịch vụ SSHD không can thiệp vào các server X11 thật. Mặc định: 10.
40. X11UseLocalhost Quy định việc dịch vụ SSHD có gán server chuyển tiếp X11 vào địa chỉ loopback hay là vào đỉa chỉ wildcard.
41. PermitTTY Quy định cho phép phân bổ pty hay không. Mặc định: yes.
42. PrintMotd Quy định việc dịch vụ SSHD có in file /etc/motd ra màn hình khi user tương tác hay không. Mặc định: yes.
43. PrintLastLog Quy định việc dịch vụ SSHD có in ngày và thời gian ra màn hình khi user tương tác hay không. Mặc định: yes.
44. TCPKeepAlive Quy định việc dịch vụ SSHD có gửi gói tin keepalive tới phía người dùng hay không. Mặc định: yes.
45. UseLogin Quy định việc login có được dùng cho các session login tương tác hay không. Mặc định: no.
46. UsePrivilegeSeparation Quy định việc dịch vụ SSHD phân chia quyền bằng cách tạo ra một process con không quyền để xử lý các lưu lượng mạng đầu vào. Mặc định: yes.
47. PermitUserEnvironment Quy định việc file ~/.ssh/environment và option environment= trong file ~/.ssh/authorized_keys có được xử lý bởi dịch vụ SSHD hay không. Mặc định: no.
48. Compression Quy định có bật tính năng nén hay không, hay sẽ bị hoãn cho tới khi user chứng thực thành công. Các giá trị khả dụng: yes, no, delayed. Mặc định: delayed.
49. ClientAliveInterval Quy định thời gian timeout (tính bằng giây) mà sau đó nếu không có bất kỳ dữ liệu nào được nhận từ phía client, dịch vụ SSHD sẽ gửi một thông báo thông qua một kênh mã hóa để yêu cầu phản hồi từ client. Mặc định: 0.
50. ClientAliveCountMax Quy định số lượng thông báo client đang alive sẽ được gửi đi khi dịch vụ SSHD không nhận được bất kỳ phản hồi nào từ client.
51. ShowPatchLevel Quy định việc dịch vụ SSHD có hiển thị mức độ vá của binary trong chuỗi định danh hay không. Mặc định: no.
52. UseDNS Quy định việc dịch vụ SSHD có truy vấn hostname của máy từ xa và kiểm tra hostname đã phân giải xem địa chỉ IP từ xa đó có khớp với địa chỉ IP nào không. Mặc định: yes.
53. PidFile Quy định file chưa process ID (PID) của dịch vụ SSHD. Mặc định: /var/run/sshd.pid
54. MaxStartups Quy định số kết nối chưa chứng thực tối đa đến dịch vụ SSHD. Mặc định: 10.
55. PermitTunnel Quy định việc có cho phép chuyển tiếp thiết bị tun hay không. Các giá trị khả dụng: yes, point-to-point (layer 3), ethernet (layer 2), no.
56. ChrootDirectory Quy định đường dẫn tới chroot sau khi chứng thực.
57. VersionAddendum Quy định đoạn văn bản kèm thêm để chèn vào banner giao thức SSH được gửi đi bởi server. Mặc định: none.
58. Banner Nội dung từ một file nhất định sẽ được gửi đến người dùng từ xa trước khi chứng thực được cho phép.
59. AcceptEnv Quy định các tham số môi trường nào được gửi đi bởi client sẽ được sao chép vào môi trường của session.
60. Subsystem Cấu hình một hệ thống phụ bên ngoài (ví dụ như truyền tải file – sftp).
61. Match User Điều kiện và cấp quyền nhật định cho user.
62. Match Address Điều kiện và cấp quyền nhật định cho địa chỉ IP từ xa.

THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST

>> SERVER – COLOCATION – CDN

>> CLOUD – VPS

>> HOSTING

>> EMAIL

>> WEBSITE

>> TÊN MIỀN

>> SSL – LICENSE

Đánh giá bài viết
Was this article helpful?
Đánh giá
Đánh giá bài viết
Đăng ký nhận tin

Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vinahost

    Bài viết liên quan
    Bình luận
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Phản hồi nội tuyến
    Xem tất cả bình luận