Định nghĩa giao thức SSH là gì? Khi nào nên dùng SSH? Có những câu lệnh phổ biến nào trong SSH? Vì sao cần thay đổi port SSH và đổi như thế nào trên server Linux? Cùng TotHost tìm hiểu trong bài
1. Giao thức SSH là gì?
SSH (Secure Shell) là một giao thức mạng được dùng để thiết lập kết nối mạng bảo mật giữa các thiết bị. SSH cho phép người dùng truy cập và điều khiển các thiết bị từ xa thông qua một kết nối mạng bảo mật và mã hóa dữ liệu giữa các thiết bị đó. Với các tính năng bảo mật như xác thực người dùng, mã hóa dữ liệu, xác thực máy chủ và bảo mật mạng, các kết nối SSH được bảo vệ an toàn trước các kẻ tấn công trên mạng.
SSH đóng vai trò quan trọng trong quản lý hệ thống và bảo mật mạng. Nó được sử dụng phổ biến trong các hệ thống máy tính và các thiết bị mạng để truy cập và quản lý từ xa. Đặc biệt là trong các hệ thống máy chủ.
1.1. Cơ chế hoạt động của SSH là gì?
Giao thức SSH được tạo ra nhắm thay thế cho trình giả lập Terminal và các cơ chế điều khiển đăng nhập không an toàn như Telnet. Vì thế, giao thức này có tính năng đăng nhập, trình khởi chạy terminal, điều khiển trên máy chủ từ xa.
Máy khách và máy chủ hiện sử dụng khóa phiên để mã hóa và giải mã tất cả dữ liệu được gửi giữa chúng. Điều này cung cấp một kênh an toàn, được mã hóa để truyền dữ liệu.
Nhìn chung, giao thức SSH cung cấp một cách an toàn và đáng tin cậy để truy cập và quản lý các thiết bị từ xa qua internet. Nó được sử dụng rộng rãi bởi các quản trị viên hệ thống, nhà phát triển và các chuyên gia khác, những người cần truy cập hệ thống từ xa một cách an toàn.
1.2. Khi nào nên dùng SSH?
Đây là một vài tình huống bạn có thể sử dụng SSH trong công việc:
- Truy cập máy chủ hoặc thiết bị mạng từ xa: SSH cung cấp một cách an toàn để kết nối với thiết bị và thực hiện các tác vụ mà không cần phải có mặt trực tiếp.
- Truyền tệp tin giữa hai hệ thống: SSH cung cấp các giao thức truyền tệp an toàn (SFTP) và sao chép an toàn (SCP) sử dụng mã hóa để bảo vệ dữ liệu trong quá trình truyền.
- Giao diện dòng lệnh: Giao diện dòng lệnh an toàn (CLI) của SSH cho phép bạn thực thi các lệnh trên một hệ thống từ xa như thể bạn đang ngồi trước nó.
Tóm lại, SSH là một công cụ linh hoạt được sử dụng cho nhiều tác vụ liên lạc, kết nối an toàn trên không gian mạng.
2. SSH server là gì và các dịch vụ liên quan
2.1. SSH Server bằng OpenSSH:
Để SSH server (truy cập server bằng giao thức SSH), chúng ta có một số công cụ như OpenSSH, Putty, MobaXterm. Trong đó OpenSSH là phổ biến nhất.
OpenSSH là dịch vụ được cài mặc định trên các máy chủ CentOS, Ubuntu. Nếu chưa có có thể cài đặt bằng lệnh sau.
-------------RHEL------------------------
yum install openssh openssh-server openssh-clients openssl-libs -y
-------------Ubuntu----------------------
sudo apt-get install openssh-server openssh-client -y
File cấu hình được lưu tại /etc/ssh/sshd_config . Sau khi sửa cấu hình thì sẽ phải reset lại config
Để vào server ta dùng lệnh: ssh <username>@<IP_server> -p <ssh_port>
trong đó:
- username is the account name used for SSH.
- IP_server is the IP address you want to SSH into.
- ssh_port là port mà được sử dụng cho SSH (điền 4433 nếu bạn đang dùng TotHost). Xem thêm về cách đổi port ở bên dưới.
Xem thêm cách SSH server bằng Putty, MobaXterm: Các cách kết nối server linux
2.2. SCP – Dùng SSH truyền file dữ liệu
SCP là lệnh do OpenSSh cung cấp để truyền file dữ liệu. Command:
scp [OPTION] [user_src@]src_host:]src_file [user@]desk_host:]des_file
Trong đó:
- [OPTIONS] các thiết lập cho thêm vào nếu muốn, như cho thêm tham số -r để đệ quy copy cả thư mục, các file, thư mục con theo đường dẫn
- [user_src@]src_host:]src_file là file, thư mục nguồn
VD: [email protected]:/home/file1.txt - [user@]desk_host:]des_file là file, thư mục đích
2.3. RSA – SSH bằng key
SSH bằng key: (có key → vào được, không có key → từ chối kết nối)
command:
-----create key--------
ssh-keygen -t rsa
-----------------------
1st line : key location
2nd line : passphrase (enter is empty)
3rd line : comfirm passphrase
Sau khi lệnh trên chạy xong sẽ tạo ra 2 file key:
- file id_rsa là file để ở client. Khi dùng lệnh hay 1 phần mềm thứ ba thì openSSH sẽ đọc qua file này để có thể ssh vào Server
- file id_rsa.pub là file được đặt trên server
Ta có thể tạo ra key trên máy client, sau đó chép nội dung của file id_rsa.pub được tạo trên client và copy nó vào id_rsa.pub của server. Khi đó, ta có thể kết nối đến server. (Nếu server giới hạn IP, cần mở FW để có thể vào được)
3. Thay đổi port SSH trên Server Linux
Mặc định Server Linux sẽ dùng port 22 để kết nối. Vì vậy, khi kết nối ta thường bỏ qua tham số -p mà máy vẫn sẽ hiểu. Nhưng với tình hình các cuộc tấn công mạng gần đây, chúng ta dễ dàng bị quét login và mất quyền kiểm soát server. Do đó, một số công ty cung cấp VPS thay đổi port mặc định để đảm bảo an ninh thông tin cho server. Như TotHost, port 22 được thay thế bằng port 4433.
Dưới đây, TotHost sẽ chia sẻ cách thay đổi 2 loại OS Linux phổ biến là Ubuntu và Centos 7
3.1. Đổi port SSH trên Ubuntu
Đối với hệ điều hành này, việc đổi port khá đơn giản:
- Vào file config
/etc/ssh/sshd_config
sửa dòng#Port 22
thành số port mà mình mong muốn (Cụ thể đối với TotHost, số port là 4433). - Chạy lệnh
Systemctl restart sshd
để load lại cấu hình SSH. - Update lại firewall để sau khi thoát ra vẫn vào lại được. Với firewall mặc định của Ubuntu, bạn chạy lệnh
sudo ufw allow <port_number>
nhé
3.2. Cách đổi port SSH trên CentOS 7
Với Centos 7, sẽ khó hơn chút. Đặc biệt là khi server mới được dựng lên từ ISO, bị thiếu một số công cụ của SELinux, khiến không thể thay được port của server. Cụ thể ở đây là semanage.
- Để cài semanage ta chạy lệnh
yum install policycoreutils-python
- Thực hiện các bước thay đổi port trong file config như Ubuntu ở trên
- Chạy thêm các lệnh sau:
- Xóa port 22 :
semanage port -d -t ssh_port_t -p tcp 22
- Thêm port mới (port 4433 của TotHost) :
semanage port -a -t ssh_port_t -p tcp 4433
- sửa lại firewall:
firewall-cmd --permanent --add-port=2220/tcp
andfirewall-cmd --reload
- Xóa port 22 :
Trên đây là cách thay đổi port để đảm bảo an toàn cho server của bạn.
Hy vọng với những chia sẻ trong bài viết này, bạn đã nắm được khái niệm SHH, cách SHH cũng như cách đổi port SHH trên Linux server.